常量在脚本执行期间其值不能改变。常量大小写敏感,传统上常量标识符总是大写。常量一旦定义就不能被重新定义或取消定义,常量的值只能是标量。
可以用define()函数来定义常量,也可以使用const关键字在类定义之外定义常量。自定义常量不要以双下划线开头,可能会与魔术常量冲突。
define('FOO', 'something');const FOO = 'something';
使用const关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。常量的范围是全局的,不用管作用区域,就可以在脚本的任何地方访问常量。
魔术常量值能变,但它其实不是常量。
PHP向它运行的任何脚本提供了大量的预定义常量,有8个魔术常量的值随着它们在代码中的位置改变而改变。
__LINE__ // 文件中的当前行号__FILE__ // 文件的完整路径和文件名,绝对路径__DIR__ // 文件所在的目录,除非根目录,否则不包括末尾斜杠,等价于dirname(__FILE__)__FUNCTION__ // 函数名称,区分大小写__CLASS__ // 类的名称,包括其被声明的作用区域__TRAIT__ // Trait的名字,包括其被声明的作用区域__METHOD__ // 类的方法名__NAMESPACE__ // 当前命名空间的名称
这几个魔术常量也不知什么作用,就先放在这里吧。
(全文完)