Руководство пользователя 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