PHP常量
常量含义:
用于存储一个不会变化也不希望变化的数据的标示符。
常量命名规则同变量,但习惯上,常常将常量名称使用“全大写”形式。
常量定义形式:
1:使用define()函数定义
使用形式: define("常量名",常量值);
define("CONST1",1);
define("_C2","ABC"); //但不推荐使用“--”开头的名字
define("pi",3.14);
推荐使用全大写定义常量名
2:使用const语法定义
使用形式:const 常量名 = 常量值
但const语法只能在“最顶层”的代码域中使用
也即,const语法不能在函数中或条件语句中或其他表示一个“范围”的语句中使用
常量的使用:
直接使用名字:
echo CONST1;
或使用constant()函数:constant("常量名");
echo constant('CONST1');
常量与变量的区别:
1:定义形式不同
2:使用形式不同,常量无需$符号
3:可变程度不同,常量的值不可以改变,常量也不可以销毁
4:作用范围不同,常量具有超全局作用域(函数内外都可以直接使用)
5:可用类型不同,常量只能存储标量类型:int , float ,string, bool
判断常量是否存在: defined():
判断的结果为布尔值
常用形式: if(defined(常量名) == false {...这里可以去定义常量}
实际上,也可以这样: $result = defined(常量名); //结果为布尔值
使用一个未定义的常量(特殊情况):
使用一个未定义的常量会报一个错误(notice错误) -- 跟使用一个未定义的变量一样 (不推荐使用)。但是php中,此时会得到一个意想不到的结果:似乎该常量存在,并该常量的值就是该名字。
注:使用 ini_set("display_errors",0); 可关闭 notice 提示!
预定义常量:
PHP语言中,预定义了大量的常量,可以直接使用。
其中有些常量,是需要某些模块打开之后才有(比如mysql模块)。
如:M_PI , PHP_OS , PHP_VERSIN , PHP_INT_MAX ......
魔术常量:
魔术常量其实是一种值会随着一定条件(环境)而变化的常量,形式和使用上是常量,但实际上,其值会改变。
比如: __DIR__ (当前网页文件的所在目录), __FILE__ (当前网页文件), __LINE__ (当前这一行)
魔术常量其实类似变量,其值随着不同代码而变化,不区分大小写