PHP 中 define() 和 const 定义常量时的区别

 

自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数:

这两种方式最根本的区别在于 const 在编译时定义,而 define 在运行时定义。

一、const 不能在条件语句中使用,使用 const 关键字定义常量必须处于最顶端的作用区域:

二、const 定义常量值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用,官网说明见这里;而 define 定义常量时可以使用表达式的值:

三、const 定义的常量名不能是表达式,而 define 可以,因此下面的代码是合法的:

四、const 定义的常量名大小写敏感,而 define 可以在定义常量时指定第三个参数为 true 定义一个大小写不敏感的常量:

说明:有人说在 PHP 5.3 之前的版本里面,const 语句只能用在类定义里而不能再全局定义域使用,这点笔者没有去考证,都啥年代了,还用 PHP 5.2 ?另外请注意, PHP 官网上对 const 的说明是放在类与对象里面讲的,也能表明 const 最初设计是用来定义类里面的常量的。

posted @ 2016-12-02 10:25  的士特啰嗦司机  阅读(309)  评论(0编辑  收藏  举报