PHP OOP - 如何定义带有变量或函数输出的 CONST?

标签 php oop constants

我的具体情况是,我正在尝试将路径定义为常量。现在我这样硬编码:

class Cache
{
   const PATH_TO_CACHE = '/home/site/public_html/wp-content/themes/theme/cache/';

但我需要定义是可移植的。所以可以检测路径,放入变量,然后放入类。本质上,我想要完成的是:

$somepath = {code to get path};

class Cache 
{
const PATH_TO_CACHE = $somepath;

最佳答案

我喜欢为此使用依赖注入(inject)。例如:

class Cache {

  private $path_to_cache;

  function __construct($cache_path) {
    $this->path_to_cache = $cache_path;
  } 

}

然后您可以使用定义的设置:

$cache = new Cache($GLOBALS['config']['cache_path']);
$cache = new Cache($_SERVER['cache_path']);
$cache = new Cache($some_other_way_to_get_cache_path);

等等

您也可以在开发/调试时轻松更改路径:

$cache = new Cache('path/to/folder/that/is/being/problematic');

关于PHP OOP - 如何定义带有变量或函数输出的 CONST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20572036/

相关文章:

php - 扩展类和将其包含在 PHP 中有什么区别?

design-patterns - 编写出色的软件

c++ - 使函数 primitve param const 如何导致编译器优化的好例子

java - 在java中实现接口(interface)和抽象类中都存在的方法

C++ : struggle with generic const pointer

PHP:带有未定义常量的 Switch 语句

php - 使用外部 XML 更新/填充 mysql 数据库的有效方法

php - 如何在下拉列表中获取所选选项的ID?

php - 如何使用 PHP 限制 API 请求

php - 通过属性使用 Xpath 解析 xml