php - 带前导反斜杠的 PHP 常量在哪里结束?

标签 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 访问的任何地方,或者值只是在某个地方丢失了?

最佳答案

它进入定义的常量数组。我的猜测是除了调用 get_defined_constants() 之外,没有其他方法可以查到它。

define('\theNamespace\CONSTANT_NAME',42);
echo get_defined_constants()['\theNamespace\CONSTANT_NAME'];

关于php - 带前导反斜杠的 PHP 常量在哪里结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22082987/

相关文章:

php - 是否可以在同一个 if block 中运行多个 elseif block ?

php - 如何为同一个 Controller 使用 laravel Multiple Auth Guard

php - 使用从 MySQL 接收的数据填充 Highcharts 图表

php - 需要在所有 Controller Laravel 的顶部包含输入

variables - 如何使用来自资源另一个 .cs 文件的变量与 "using"

命名空间中的 C++ 前向声明和友元

c++ - std::cout 的简约重新实现

php - 有没有办法将MySQL数据库信息下载到SQLite

php - 通过 PHP 以编程方式备份​​(和通过电子邮件发送)完整的 MySQL 数据库

c++ - FOO::BAR 类命名空间的 Qt MOC 错误