定义
指一个简单值的标识符(名字),常量值只有4种:Bool、Integer、float、String,其值在脚本执行期间不能改变(除了魔术常量,它们其实不是常量)。常量默认为大小写敏感。传统上常量标识符总是大写的。合法的常量名以字母或下划线开始,后面接任何字母,数字或下划线。常量只能包含标量数据,也可定义资源型,但不推荐
两种定义方式:
►Define( 'name' , 'value' , [true] )
第三项设置为 TRUE,则大小写不敏感。默认敏感。
►Const name= 'value'
Const关键字一般用在面向对象类中定义,称为“类常量”,使用const定义常量必须处于最顶端的作用区域,因为此方法在编译时定义,因此不能在函数、循环以及if语句内使用。
获取常量值:
►constant ( 'name' )
当常量的值未知,可用该函数获取,返回常量的值,若常量未定义则返回 NULL。
►get_defined_constants ([ bool $categorize = false ] )
返回当前所有已定义的常量名和值。这包含define函数所创建的以及所有扩展所创建 的。第三个参数让函数返回一个多维数组,分类为第一维的键名,常量与其值位于第二维。
检测是否存在:
►defined ( 'name')
返回T/F,只能检测常量,检变量用isset(),函数用function_exist()
特点
►没有作用域的局限,在当前的脚本中定义后,可在任意页面使用
►定义后不可修改、不可删除
常量主要避免重复定义,篡改变量值。在团队开发或代码量很大时,对于一些第一次定义后不改变的量,在不知情的情况下使用同一变量名时,变量值就会被替换掉,从而引发服务器执行错误。使用常量还能提高代码的可维护性。
与变量的区别
1. $ 常量前面没有($)
2. define常量只能用 define() 函数定义,而不能通过赋值语句
3. 作用域 常量可以不用理会变量的作用域而在任何地方定义和访问
4. 重定义常量一旦定义就不能被重新定义或者取消定义
5. 标量类型 常量的值只能是标量
6. 命名空间 常量和(全局)变量在不同的名字空间中
魔术常量
PHP提供的8个预定义常量,使用时不区分大小写
__LINE__ 返回当前行号
__FILE__ 以绝对路径形式返回文件完整路径与文件名
__DIR__ 返回文件所在目录,等价于dirname(__FILE__)
__FUNCTION__ 返回函数名称
__CLASS__ 返回类名称
__TRAIT__ Trait的名字
__METHOD__ 类的方法名
__NAMESPACE__ 当前命名空间名称
评论列表(0条)