Почему атрибуты PHP не допускают функций?

Я новичок в PHP, но уже много лет программирую на подобных языках. Я был сбит с толку следующим:

class Foo {
    public $path = array(
        realpath(".")
    );
}

Произошла синтаксическая ошибка: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный '(', ожидание ')' в test.php в строке 5 , который является вызов realpath .

Но это работает нормально:

$path = array(
    realpath(".")
);

После того, как я некоторое время бился об это, мне сказали, что вы не можете вызывать функции с атрибутом по умолчанию; вы должны сделать это в __ construct . У меня вопрос: почему ?! Это «особенность» или неаккуратная реализация? В чем обоснование?

41
задан DaveRandom 18 March 2013 в 16:33
поделиться