PHP 变量和常量:常量的定义和使用
问题
我们通常把不变的值定义成常量,那么我们在 PHP 编程中如何定义常量呢?
回答
在 PHP 编程中,我们一般使用 define
函数和 const
关键字来定义常量。合法的常量名以字母或下划线 _
开始,后面跟任何字母 A-z
,数字 0-9
或下划线 _
。而在传统的 PHP 编程中,常量标识符总是大写的。
常量和变量的区别如下:
- 常量命名的前面没有美元符号
$
修饰符; - 常量只能用
define
函数和const
关键字定义; - 常量一旦定义就不能被重新定义或者取消定义;
- 常量的值只能是标量(数值或者字符串)。
使用 define
定义常量
语法
define("常量名", 常量值, 布尔值);
语法解析:
- 常量名代表的是定义的常量的名称;
- 常量值代表的是常量的值;
- 布尔值代表的是常量名是否大小写敏感(默认为
false
),true
代表不敏感,false
代表敏感。
示例
<?php
// 1. 合法的常量名。
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more");
// 2. 非法的常量名。
define("2FOO", "something");
// 3. 下面的定义是合法的,但应该避免这样做(自定义常量不要以双下划线 __ 开头):
// 也许将来有一天 PHP 会定义一个 __FOO__ 的魔术常量,
// 这样就会与你的代码相冲突。
define("__FOO__", "something");
// 4. 在类中不能使用 define 定义常量。
class MyClass {
define("FOO3", "something");
}
注:define
函数不能在类中定义常量,通过 get_defined_constants()
函数可以获得所有用 define
定义的常量
使用 const
定义常量
const
一般用于在类中定义常量,PHP 在 5.3.0 以后才开始支持 const
。
语法
const 常量名 = 常量值;
示例
<?php
class MyClass
{
const constant = '我是一个常量';
}
echo MyClass::constant;
运行结果:
我是一个常量