我如何绕过没有数组作为PHP中的类常量?

use*_*841 2 php arrays oop constants

我有一个静态方法的类.有一个数组可以检查传递的字符串参数是否为set的成员.但是,使用静态方法,我不能在未实例化的类中引用类属性,也不能将数组作为类常量.

我想我可以在静态方法中对数组进行硬编码,但是如果我需要更改它,我必须记得在两个地方更改它.我想避免这种情况.

sou*_*rge 6

您可以创建一个私有静态函数,它将按需创建数组并返回它:

class YourClass {
    private static $values = NULL;
    private static function values() {
        if (self::$values === NULL) {
            self::$values = array(
                'value1',
                'value2',
                'value3',
            );
        }
        return self::$values;
    }
}
Run Code Online (Sandbox Code Playgroud)