假设我有 2 个带有命名空间的 php 文件:
首先:
# src/one.php
namespace foo\one;
const SOME_VALUE = "value 1";
第二个:
# src/two.php
namespace foo\two;
const SOME_VALUE = "value 2";
我正在尝试做的事情:
require_once "src/one.php";
require_once "src/two.php";
foreach(["one", "two"] as $ns_type) {
echo foo\$ns_type\SOME_VALUE;
}
显然它不是那样工作的。我一直在阅读文档并且可以
找不到正确的方法来做到这一点。
我找到的唯一解决方案是向每个命名空间添加一个函数,用它的名称构造一个字符串,然后调用它。
$func = "foo\$ns_name\get_my_constant";
$func();
所以问题仍然存在,我如何在没有辅助函数的情况下访问命名空间常量?
P.S 常量名对于每个文件都是相同的
最佳答案
如果您需要通过其动态名称打印常量值,您可以试试这个:
echo constant("foo\\$ns_type\SOME_VALUE");
在你的 foreach 循环中。
关于php - 使用动态名称访问命名空间内的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34512411/