1

PHP中的类定义有没有办法将属性设置为具有设置属性的STD对象?

我在想你可以键入 cast 但它不允许用于类定义中的属性。

//example.
class Foo{
   private static $Obj = (object) ['bizz', 'bazz'];
}

这将触发此错误:

Parse error: syntax error, unexpected '(object)' (object) (T_OBJECT_CAST)

4

1 回答 1

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;
    }
于 2012-08-01T00:27:06.790 回答