![]() |
1
966
从php 5.3开始,有两种方法可以
define constants
:使用
这两种方法的根本区别在于
所以,这是坏的一面。现在让我们来看看为什么我个人总是使用
最后,请注意
总结
除非您需要任何类型的条件或表达定义,否则请使用
|
![]() |
2
194
在php 5.3之前,
好的例子
好的例子
|
![]() |
3
35
我知道这已经被回答了,但是目前的答案都没有提到名称间距以及它如何影响常量和定义。 从PHP5.3开始,consts和defines在大多数方面都是相似的。然而,仍然存在一些重要的差异:
下面的代码应该说明这些差异。
用户子数组的内容将是
===更新===
即将推出的php 5.6允许在
但是,您仍然无法根据变量或函数返回定义常量,因此
仍将外出。 |
![]() |
4
22
我相信从php 5.3开始,您可以使用
http://www.php.net/manual/en/language.constants.syntax.php
|
![]() |
5
18
你不能
此外,还有
|
![]() |
6
13
Nikic的回答是最好的,但是让我在使用名称空间时添加一个不明显的警告,这样您就不会被意外行为捕获。要记住的是,定义是 总是 在全局命名空间中,除非显式添加命名空间作为定义标识符的一部分。不明显的是,名称空间标识符胜过全局标识符。所以:
生产:
对我来说,这使得整个const概念不必要地令人困惑,因为在许多其他语言中,const的概念是,在代码中的任何位置都是相同的,而php并不能真正保证这一点。 |
![]() |
7
12
大多数答案都是错误的,或者只讲了一半的故事。
例如:
不好的例子:
要创建变量常量,请使用define(),如下所示:
|
![]() |
8
5
是的,const是在编译时定义的,由于nikic状态不能被分配表达式,因此define()可以。但也不能有条件地声明常量(出于同样的原因)。也就是说,你不能这样做:
而您可以使用define()。所以,这并不是真正的个人偏好,有一个正确和错误的方法来使用两者。 作为旁白…我想看看可以分配给表达式的类常量,一种可以隔离到类的define()? |
![]() |
9
5
加上尼基的回答。
你不能这么做
|
![]() |
10
3
没有人说任何关于php-doc的事情,但对我来说,这也是一个非常重要的论据,它优先于
|
![]() |
Utkonos · 如何将Python枚举公开为不带类名的“常量” 1 年前 |
![]() |
Yugraaj Sandhu · 把const作为引用和值有什么区别? 1 年前 |
![]() |
user246392 · 泛型参数在中没有匹配的注释。净8 AOT 1 年前 |
![]() |
Fyodor · 避免GCC编译器“不兼容的指针类型”警告 1 年前 |
![]() |
semicolon_missing · 指针的常量引用 1 年前 |
![]() |
Sasha · C: void*作为句柄,失去const表达能力 1 年前 |
![]() |
ÐÐ³Ð¾Ñ Ð¢ÑиÑонов · 忽略字符常量 1 年前 |