首页 PHP 正文
192

define与const定义常量的比较

  • yiqingpeng
  • 2019-04-29
  • 0
  •  
从php5.3.0开始,const除了能在类中定义类的常量之外,还可以在外部定义常量。
那么define与const在定义常量时有哪些异同呢,本文作了如下简单的总结。

相同点:
1、命名规范是一样的。
2、都是全局作用域。 
3、必须先定义再使用,错误的示例如下:
echo A;
const A='a';
4、都能被get_defined_constants() ,defined(), constant()函数识别。

不同点:
1、const不能在函数、循环,if,catch中使用。个人推测,不能出现在{}语句块中。
if (true) const A = 'a'; //这是错误的用法
2、在php5.6中,只有const能定义数组类型的常量,而define是不行的(php7是可以的)。如:const A=[1,2,3];
3、const可以定义类的成员常量。

正在加载评论...