预定义常量,魔术常量,常量,
1,预定义常量包括内核预定义的和各种扩展库定义(只有在加载了这些扩展库时才会出现,
或者动态加载后,或者在编译时已经包括进去了。);
2,魔术常量的值随着它们在代码中的位置改变而改变。如:__LINE__ ,
__FILE__ ,
__DIR__等
3,还有就是用户自定义的常量,用define()和关键字const定义,const一般用于类里,当然从5.3
以后也可以用户平常的常量定义。
4,可以用get_defined_constants()函数获得已定义的所有常量。
5,如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(ab对应 "ab")。此时将发出一个 E_NOTICE 级的错误。如:
error_reporting(E_ALL); // 开启所有错误提示
$a= array('ab'=>12,2,3);
echo $a[ab];
//结果:
Notice: Use of undefined constant ab - assumed 'ab' in D:\webserver\www\test\test.php on line 18
12
此时php会认为$a[ab] 中的ab是个常量,并且是个未定的,那么就定义为"ab",然后在调用数组值,这也是
为什么$a[ab]效率没有$a['ab']高的原因了。