场景
- 看到了一篇很好的文章, const vs define
原文连接
- 推荐看原文
- 原文地址
原文摘要
- 这两种方式的根本区别在于const会在代码编译时定义一个常量,而define则是在代码运行时才定义一个常量。这就使得const会有以下几个缺点:
- const不能在条件语句中使用。如果要定义一个全局变量,const必须要处于整个代码的最外层:
- const只能用来声明变量(如数字、字符串,或者true, false, null, FILE),而define()还能接受表达式。不过在PHP5.6之后const也可以接受常量的表达式了
- const的常量命名只能用直白的文本,而define()允许你用任何表达式来对常量命名。这样我们就可以执行以下操作:
- const定义的常量是大小写敏感的,但是define允许你将其第三个参数设置为true来关闭其对大小写的敏感:
- const 优点
- const更加易读、美观。
- const默认在当前的namespace下定义常量,而使用define则需要你写明整个namespace的完整路径:
- 因为const在编译时就被执行了,所以它在速度上要比define快一点。
- const可以在class和interface当中使用 ,而define是做不到这一点的:
- 除非你需要使用表达式或者在条件语句中定义常量,不然的话仅仅是为了代码的简单可读性你都最好要使用const!