PHP 命名空间,包括 use 语句中的常量

标签 php namespaces constants

我正在尝试在 PHP 命名空间 Use 语句中使用常量:

define('API_VERSION', 'v201705');

我希望能够在下面的 use 语句中使用上面的常量

use api\v201705\service;

我不知道这是否可行,因为以下显然不起作用:

use api\.API_VERSION.\service;

任何人都可以建议在这种情况下使用常量的不同方法吗?

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

我在这里使用的解决方法是仅使用类常量。

然后

  1. 您无需覆盖自动加载器
  2. 您可以按语义对常量进行分组
  3. “define”具有全局可见性,99% 的用例都不需要它。
  4. 您不需要实例化类即可使用类常量。因此,这是相当便宜的操作。

namespace My;

class StaticConfig {  
   const VERSION = '1.2.3';
}

...        
use My\StaticConfig;
echo StaticConfig::VERSION;

实际上,这甚至不是一种解决方法,而是一种很常见的做法。

关于PHP 命名空间,包括 use 语句中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930610/

相关文章:

c++ - 静态 constexpr 全局变量

string - 如何将一行中的哈希引用转换为 Perl 中的常量

php - 从php调用mysql存储过程时出现错误

php - 使用 mysql_fetch_array 和 php 从数据库获取三个元素

php - 自动加载和命名空间 php

javascript - 扩展 JavaScript 命名空间 (IIFE)

java - 将所有常量放在一个类android中

php - 插入到两个表中,一个具有另一个的外键

php - 在 Ubuntu 中使用 php exec 函数不起作用

c++ - 访问命名空间中的枚举