假设我有两个带有名称空间的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();
所以问题仍然存在,如果没有helper函数,我如何访问命名空间常量
P.S常量名称对于每个文件都是相同的
如果您需要按常量的动态名称打印常量值,您可以尝试以下操作:
echo constant("foo''$ns_type'SOME_VALUE");
在你的前臂环。