php - 使用动态名称访问命名空间内的常量

标签 php namespaces

假设我有 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/

相关文章:

php - 如何将 PHP 内置 Web 服务器日志输出到标准输出?

php - 在迷你购物车中隐藏中间破折号(主题 functions.php)

node.js - Socket.io:命名空间、 channel 和合作

php - Bootstrap 4 明信片在我的网站上似乎有所不同

php - Laravel 数据表中的限制

php - 使用 PHP 7.2.4 的 Ubuntu 16.04 上缺少 PDO 驱动程序

c++ - 使用opencv2后找不到min函数

html - 使用 ids 而不是 name 属性来标识表单中的字段有什么隐藏的原因吗?

c++ - 名称查找和声明点概念

c# - 在另一个文件中使用一个文件的方法