PHP中是否有一种方法可以将属性设置为具有set属性的STD对象?
我原以为你可以输入强制转换,但不允许在类定义中使用属性。
//example.
class Foo{
private static $Obj = (object) ['bizz', 'bazz'];
}
将触发此错误:
Parse error: syntax error, unexpected '(object)' (object) (T_OBJECT_CAST)
答案 0 :(得分:3)
您无法在声明期间为类属性指定非常量值。来自http://php.net/language.oop5.properties
...初始化必须是一个常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。
您需要使用类方法初始化属性,例如
class Foo {
private static $Obj;
private static getObj() {
if (null === self::$Obj) {
self::$Obj = (object) ['bizz', 'bazz'];
}
return self::$Obj;
}