语法及注意点
- const 定义常量语法:const 常量标识符 = 常量值;
- const 关键字一般在类的声明里定义常量时使用;在 PHP 5.3.0 以后,可以使用 const 关键字在类定义的外部定义常量。
- const 定义的常量默认为大小写敏感。通常常量标识符总是大写的,而且也建议在开发过程中使用大写
const 与 define 都可以定义常量,他们的区别是:
- const 一般用于类成员变量的定义,一经定义,不可修改。define 不可用于类成员变量的定义,一般用于定义全局常量。
- const 不能在条件语句中定义常量
- const 采用一个普通的常量名称,define 可以采用表达式作为名称
- const 只能接受静态的标量,而 define 可以采用任何表达式
- const 定义的常量大小写敏感,而 define 可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感
<?php
const TEST='test';
class Person
{
const NAME = 'tom';
const name = 'john';
public function test()
{
echo self::NAME . '<br>';
echo self::name . '<br>';
echo TEST . '<br>';
}
}
$cc = new Person();
$cc->test();
echo Person::NAME . '<br>';
define 不可用于类成员变量的定义,一般用于定义全局常量。
<?php
define('TEST', 'test');
const TEST1 = 'test1';
class Test
{
public function tt()
{
echo TEST . '<br>';
echo TEST1 . '<br>';
}
}
$cc = new Test();
$cc->tt();
const 不能在条件语句中定义常量
<?php
$i = 10;
if ($i < 15) {
define('AGE', 12);
}
echo AGE . '<br>';
const 采用一个普通的常量名称,define 可以采用表达式作为名称
<?php
$n = 'TT' . mt_rand(1, 999);
define($n, 12);
echo constant($n);
只能接受静态的标量,而 define 可以采用任何表达式
<?php
define('TT1', (1 + 2).mt_rand(1,100));
echo TT1 . '<br>';
而 define 可通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感
<?php
define('Name','tom',true);
echo Name.'<br>';
echo namE.'<br>';