PHP выполняет расширенные операторы на уровне класса (например, статический Java {})? - PullRequest
1 голос
/ 05 марта 2012

К сожалению, в 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 Ответ

1 голос
/ 05 марта 2012

Короче: извините, нет.

Свойства класса могут быть инициализированы только постоянными значениями, и нет ничего похожего на статический конструктор.

...