PHP中的类定义有没有办法将属性设置为具有设置属性的STD对象?
我在想你可以键入 cast 但它不允许用于类定义中的属性。
//example.
class Foo{
private static $Obj = (object) ['bizz', 'bazz'];
}
这将触发此错误:
Parse error: syntax error, unexpected '(object)' (object) (T_OBJECT_CAST)
您不能在声明期间为类属性分配非常量值。来自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;
}