Вы назначаете анонимную функцию свойству , но затем пытаетесь вызвать метод с именем свойства.PHP не может автоматически извлекать анонимную функцию из свойства.Следующее будет работать
class Foo{
function __construct() {
$this->sayHi = create_function( '', 'print "hi";');
}
}
$foo = new Foo;
$fn = $foo->sayHi;
$fn(); // hi
Вы можете использовать магический метод __call
для перехвата недопустимых вызовов метода, чтобы посмотреть, есть ли свойство, содержащее функцию обратного вызова / анонимную функцию:* Начиная с PHP5.3, вы также можете создавать Lambdas с помощью
$lambda = function() { return TRUE; };
См. Руководство PHP по анонимным функциям для дальнейшего ознакомления.