PHP在类级别执行高级语句(如Java&x27;s static{})?

PHP在类级别执行高级语句(如Java&x27;s static{})?,php,static,initialization,Php,Static,Initialization,不幸的是,以下内容在PHP中不可能实现: class SpamHam {} class EggBaz { function EggBaz($var) { } } class FooBar { public $fields = array( new SpamHam, new EggBaz(9) ); } 例如,Java允许以下功能: class FooBar { public static Object fields[]; static {

不幸的是,以下内容在PHP中不可能实现:

class SpamHam {}
class EggBaz {
    function EggBaz($var) {
    }
}
class FooBar {

    public $fields = array( new SpamHam, new EggBaz(9) );

}
例如,Java允许以下功能:

class FooBar {

    public static Object fields[];

    static {
        fields = new Object[] { new SpamHam(), new EggBaz(9) };
    }

}
PHP中有类似的东西吗?我希望避免这样的构造:

class FooBar {

    static $fields = null;

    static function initFields() {
        static::$fields = array( new SpamHam, new EggBaz(9) );
    }

}
FooBar::initFields();
简言之:对不起,没有

类属性只能用常量值初始化,没有什么比静态构造函数更好的了。

简而言之:对不起,没有

类属性只能用常量值初始化,没有什么比静态构造函数更好的了