Руководство пользователя PHP
Невозможно использовать
$thisот анонимной функции до PHP 5.4.0
на странице анонимных функций. Но я обнаружил, что могу заставить его работать, назначив $this ссылке и передав ссылку на инструкцию use в определении функции.
$CI = $this;
$callback = function () use ($CI) {
$CI->public_method();
};
Это хорошая практика, и есть ли лучший способ получить доступ к $this внутри анонимной функции, используя PHP 5.3?
Изменить: Удалено присвоение символом ref &, поскольку объекты по умолчанию заданы по умолчанию в PHP. $CI = &$this становится $CI = $this