如果要在 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 访问的任何地方,或者值只是在某个地方丢失了?
最佳答案
它进入定义的常量数组。我的猜测是除了调用 get_defined_constants() 之外,没有其他方法可以查到它。
define('\theNamespace\CONSTANT_NAME',42);
echo get_defined_constants()['\theNamespace\CONSTANT_NAME'];
关于php - 带前导反斜杠的 PHP 常量在哪里结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22082987/