假设我有两个带有命名空间的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 常量名称相同
答案 0 :(得分:2)
如果您需要使用动态名称打印常量值,可以尝试:
echo constant("foo\\$ns_type\SOME_VALUE");
在你的foreach循环中。