我正在尝试在 PHP 命名空间 Use 语句中使用常量:
define('API_VERSION', 'v201705');
我希望能够在下面的 use 语句中使用上面的常量
use api\v201705\service;
我不知道这是否可行,因为以下显然不起作用:
use api\.API_VERSION.\service;
任何人都可以建议在这种情况下使用常量的不同方法吗?
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
我在这里使用的解决方法是仅使用类常量。
然后
- 您无需覆盖自动加载器
- 您可以按语义对常量进行分组
- “define”具有全局可见性,99% 的用例都不需要它。
- 您不需要实例化类即可使用类常量。因此,这是相当便宜的操作。
namespace My;
class StaticConfig {
const VERSION = '1.2.3';
}
...
use My\StaticConfig;
echo StaticConfig::VERSION;
实际上,这甚至不是一种解决方法,而是一种很常见的做法。
关于PHP 命名空间,包括 use 语句中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930610/