PHP在类级别上执行高级语句(如Java的静态{})?

时间:2012-03-05 11:38:19

标签: 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 {
        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();

1 个答案:

答案 0 :(得分:1)

简而言之:抱歉,没有。

类属性只能用常量值初始化,并且没有什么像静态构造函数。