我试图将所有属性谓词存储在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);
有没有办法在不使用本地/私有变量的情况下完成此任务?
答案 0 :(得分:4)
有没有办法在不使用本地/私有变量的情况下完成此任务
是。只需创建静态方法,它将返回您需要的数组:
public static function getAttributeValidation(): array
{
return [
// populate your array as you like
...
];
}
然后在您的代码而不是SomeClass::$attributeValidation
中,您将SomeClass::getAttributeValidation()
来获取该数组。