我正在使用不区分大小写的参数覆盖一个常量。但是php没有给我“常量已经定义”的错误。我已经启用了E_ALL,E_STRICT错误。 例如:1
define('ONE',1000);
define('one',2000,true);
echo ONE; // prints 1000
echo one; // prints 2000
在第二行中,我将“one”定义为另一个不区分大小写的常量,这意味着重新定义了“ONE”。但是PHP没有给出任何错误/警告。
示例2
define('ONE',1000,true);
define('one',2000);
echo ONE; // prints 1000 with constant already defined notice
echo one; // prints 1000
在这里我可以获得错误通知。
这两个代码块有什么区别?
define
(使不区分大小写的定义首先出现),它仍然显示1000和2000。如果这个答案是正确的,我应该看到一个通知和两个1000,就像第二个示例一样。 - cHao