php define与const的区别

来源:互联网 发布:头影测量软件 编辑:程序博客网 时间:2024/04/24 18:49

1、在PHP中(PHP 4及以后),我们可以使用函数define()来定义常量,在PHP 5.3.0之后,可以使用PHP关键字const来定义常量

2、const本身就是一个语言结构,而define是一个函数;

由于函数define()定义的常量是在执行define()函数时定义的,因此可以在函数内、循环内、if语句内等函数能够被调用的任何地方使用define()函数定义常量。

由于const关键字定义的常量是在编译时定义的,因此const关键字定义常量必须处于最顶端的作用区域。这也就意味着不能在函数内、循环内以及if语句之内用const来定义常量。

3、对值的表达式支持有差异

 虽然关键字constdefine()定义的常量值都只能为null或标量数据(booleanintegerfloatstring类型)【php7+ 增加了array类型】以及resource类型(不推荐定义resource类型的常量,否则可能出现无法预知的结果)。

不过,由于关键字const定义常量是在编译时定义的,因此const关键字定义的常量值的表达式中不支持算术运算符、位运算符、比较运算符等多种运算符,而这些运算符在define()函数定义常量时都是可以直接使用的。