语法及注意点
const 定义常量语法:const 常量标识符 = 常量值;
const 关键字一般在类的声明里定义常量时使用;在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量。
const 定义的常量默认为大小写敏感。通常常量标识符总是大写的,而且也建议在开发过程中使用大写
const 与 define 都可以定义常量,他们的区别是:
const 一般用于类成员变量的定义,一经定义,不可修改。define 不可用于类成员变量的定义,一般用于定义全局常量。
const 不能在条件语句中定义常量
const 采用一个普通的常量名称,define 可以采用表达式作为名称
const 只能接受静态的标量,而 define 可以采用任何表达式
const 定义的常量大小写敏感,而 define 可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感
const TEST='test';//外部const定义 //等同 define('TEST','test'); 但一般推荐用在类内部
class Person
{
const NAME = 'tom';
const name = 'john';//不建议使用小写定义常量
public function test()
{
//调用方法与静态属性相同
echo self::NAME . '
';//tom
echo self::name . '
';//john //区分大小写
echo TEST . '
';//test //外部定义的 const 内部也可以调用
}
}
$cc = new Person();
$cc->test();
//外部也可以调用类内部定义的 const 常量
echo Person::NAME . '
';//tom
define 不可用于类成员变量的定义,一般用于定义全局常量。
define('TEST', 'test');//函数 //建议定义全局的常量
const TEST1 = 'test1';//结构 //建议定义类内部的常量
class Test
{
//define('TEST2', 'test2');//报错 //类内部不能使用 define
public function tt()
{
echo TEST . '
';//test
echo TEST1 . '
';//test1
}
}
$cc = new Test();
$cc->tt();
const 不能在条件语句中定义常量
$i = 10;
if ($i
define('AGE', 12);
// const AGE1 = '20'; //报错,条件语句内部不可以 const 定义常量
}
echo AGE . '
';//12
// echo AGE1 . '
';
const 采用一个普通的常量名称,define 可以采用表达式作为名称
$n = 'TT' . mt_rand(1, 999);//mt_rand 用于在传入两个值中获取随机值
define($n, 12);
echo constant($n);//12
//const $n=123;//报错//const 采用一个普通的常量名称,define 可以采用表达式作为名称
只能接受静态的标量,而 define 可以采用任何表达式
//const TT = (1 + 2).mt_rand(1,100);
define('TT1', (1 + 2).mt_rand(1,100));
//echo TT . '
';//报错 //只能接受静态的标量,而 define 可以采用任何表达式
echo TT1 . '
';//384
而 define 可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感
define('Name','tom',true);//传入 true 来不区分大小写(默认区分)
echo Name.'
';//tom
echo namE.'
';//tom
领取专属 10元无门槛券
私享最新 技术干货