常量及其特点
- 常量是一个简单值的标识符(名字)。
- 常量一旦声明就不可以再改变其值。
- 常量默认为大小写敏感。传统上常量标识符总是大写的。
- 常量声明就有值,如果不声明就将该常量名称当做字符串处理。
如何命名常量
声明方式一:define函数
- define函数来定义常量。
- 格式:define(‘常量名’,‘常量值’)。
- 注意:php7.3之前版本允许接受第三个参数,true:常量名不区分大小写,false:区分大小写默认。
声明方式二:const 关键字
- const 关键字在类定义之外定义常量(PHP 5.3.0 以后)。
- const 关键字定义常量必须在最顶端的作用区域,因为const 是在编译时定义的。
- 不能在函数内,循环内以及 if 语句之内用 const 来定义常量。
- 格式:const 常量名 = 常量值
常量名的命名规则。
- 合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。
- 不应该在常量前面加上 $ 符号。
- 常量名严格区分大小写。
- 常量名要有意义。
常量值
- 定义常量时,在PHP版本>7.3之前,可以使用除对象外的任意类型。
- 在PHP版本<5.4之前,常量值仅限于标量。
- 虽然可以定义 resource 常量,但应尽量避免,因为会造成不可预料的结果。
常量和变量的区别
- 常量前面没有美元符号($);
- 常量只能用 define() 函数定义,而不能通过赋值语句;
- 常量可以不用理会变量的作用域而在任何地方定义和访问;
- 常量一旦定义就不能被重新定义或者取消定义;
- 常量的值只能是标量。
魔术常量
- 魔术常量是系统自带的。
- 常量不区分大小写。
- 它们的值随着它们在代码中的位置改变而改变。
- 有八个魔术常量
__LINE__
文件中的当前行号。__FILE__
当前文件的相对于系统的完整路径和文件名(绝对路径)。__DIR__
当前文件所在的目录。它等价于dirname(__FILE__)
。__FUNCTION__
可以在函数中获取当前函数的名称。__CLASS__
表示当前常量所在的 CLASS(类)的名称。__METHOD__
类的方法名。返回该方法被定义时的名字(区分大小写)。
和常量相关的功能
- constant() 获取常量值的功能
- 格式: 返回结果 = constant(常量名’’)
- 注意:该功能一般是当常量名是一个字符串类型的时候,使用该功能可以获取到对应的常量。
- defined(): 检测常量是否被定义。
- 格式: 返回结果 = defined(‘检测的常量’)
- 返回值:返回一个布尔值:true-> 被定义; false->未定义。