Есть ли способ привязать $this
к закрытию, которое передается как параметр?
Я читал и перечитывал все, что мог найти в руководстве или через Интернет, но никто не упоминает об этом, кроме этого сообщения в блоге:
http://www.christophh.net/2011/10/26/closure-object-binding-in-php-54/
который упоминает об этом, но не показывает, как это сделать.
Итак, вот пример. При вызове метода get(function() {})
я хочу, чтобы функция обратного вызова, которая была передана ему, была привязана к объекту, то есть привязана к $this
, но, к сожалению, это не работает. Есть ли способ сделать это?
class APP
{
public $var = 25;
public function __construct() {
}
public function get($callback) {
if (!is_callable($callback)) {
throw new InvalidArgumentException('Paran must be callable.');
}
// $callback->bindTo($this);
$callback->bindTo($this, $this);
$callback();
}
}
$app = new APP();
$app->get(function() use ($app) {
echo '<pre>';
var_dump($app);
echo '<br />';
var_dump($this);
});
$app
работает. $this
имеет значение NULL.