具有前导反斜杠的PHP常量在哪里结束?

时间:2014-02-27 23:31:41

标签: php namespaces

如果要在PHP中定义命名空间常量,则需要使用完整路径。

define('theNamespace\CONSTANT_NAME',42);
echo theNamespace\CONSTANT_NAME, "\n";

如果您不小心包含了反斜杠,PHP 将不会定义常量。

define('\theNamespace\CONSTANT_NAME',42);
echo theNamespace\CONSTANT_NAME, "\n";
#PHP Fatal error:  Undefined constant 'theNamespace\CONSTANT_NAME'

但是,define函数不会抱怨以后的用法。这个\theNamespace\CONSTANT_NAME常量是否可以通过PHP访问任何地方,或者某个地方的以太丢失了值?

1 个答案:

答案 0 :(得分:1)

它进入定义的常量数组。我的猜测除了调用get_defined_constants()

之外没有其他方法可以查找
define('\theNamespace\CONSTANT_NAME',42);
echo get_defined_constants()['\theNamespace\CONSTANT_NAME'];