PHP静态变量,用于存储函数数组

时间:2017-10-03 23:09:17

标签: php arrays function static

我试图将所有属性谓词存储在PHP中的静态数组中:

public static $attributeValidation = [
    "attribute1" => function ($value) {
        return is_bool($value);
    },"attribute2" => function ($value) {
        return is_int($value);
    },
];

我收到以下错误:

expression is not allowed as default field value.

目标是使用

简化属性验证
$attributeValidation["attribute"]($someValue);

有没有办法在不使用本地/私有变量的情况下完成此任务?

1 个答案:

答案 0 :(得分:4)

  

有没有办法在不使用本地/私有变量的情况下完成此任务

是。只需创建静态方法,它将返回您需要的数组:

public static function getAttributeValidation(): array
{
   return [
       // populate your array as you like
       ...
   ];
}

然后在您的代码而不是SomeClass::$attributeValidation中,您将SomeClass::getAttributeValidation()来获取该数组。