php——21-关键词 const define

语法及注意点

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190127A0KNUQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券