Инициализировать свойство класса анонимной функцией

Почему невозможно инициализировать свойство функции при объявлении свойства в php? Следующий снипп приводит к ошибке Parse: синтаксическая ошибка, неожиданный T_FUNCTION

<?php class AssignAnonFunction { private $someFunc = function() { echo "Will Not work"; }; } ?> 

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

Редактировать:

Но я могу назначить функцию свойству в методе __construct (). Следующее работает:

 <?php class AssignAnonFunctionInConstructor { private $someFunc; public function __construct() { $this->someFunc = function() { echo "Does Work"; }; } } ?> 

Потому что он не реализован в PHP.

http://www.php.net/manual/en/language.oop5.properties.php . Цитата:

Они (свойства) определяются с использованием одного из ключевых слов public, protected или private, за которым следует объявление нормальной переменной. Это объявление может включать инициализацию, но эта инициализация должна быть постоянным значением, то есть она должна быть способна быть оценена во время компиляции и не должна зависеть от информации о времени выполнения для оценки.

Вы не можете инициализировать такие свойства, как функции, функции не являются постоянными значениями. Поэтому мой оригинальный ответ «не реализован».

Почему это не реализовано? То, что я могу только догадываться – это, вероятно, довольно сложная задача, и никто не активизировал ее. И / или может не хватить спроса на такую ​​функцию.

Закрытий не существует в PHP до PHP 5.3 (последняя версия). Убедитесь, что у вас есть PHP 5.3, если вы хотите это сделать.

В более ранних версиях вы можете дублировать эту функцию с помощью функции create_function (), примерно так:

 $someFunc = create_function($args,$code); $someFunc(); 

Где $ args – это строка, форматированная как «$ x, $ y, $ z», а $ code – строка вашего PHP-кода.