我可以为类中的常量分配函数路径或更深的值吗?


Can I assign a function path or deeper value to a constant within a class?

我在某个时候读到这无法完成,但我想知道是否有另一种方法可以做到这一点。

现在我有以下...

define('CUSTOM_THEME_BACKEND_PATH', get_stylesheet_directory()) ;

但我希望它属于像下面这样的类......

const CUSTOM_THEME_BACKEND_PATH = get_stylesheet_directory();

然后我可以运行如下所示的内容...

MyConstantClass::CUSTOM_THEME_BACKEND_PATH . '/path/to/file'

无论如何,我可以为类中的常量分配更复杂的值吗?

参考: http://php.net/manual/en/language.oop5.constants.php

我想通过类保护我的常数,但我也正在创建一个具有相当多选项的主题,我必须定义这些值。我想减少这一点,这也将让我将来用更少的工作来改变事情。

我想分配类似上面和以下内容的东西......

const Option = get_options_data('custom-theme-custom-assets', 'enable-custom-skins');

然后,如果我能做以下事情...

if (isset(MyConstantClass::Option) && MyConstantClass::Option == 'true'){}

有没有办法做到这一点?

您可以使用"mutable"关键字使类的某些字段可更改,并在以下行中设置它们。

但是,这是非常不规则的,应仔细考虑。