$that = $this;
$closure = function (...) use ($that) { ... };
Найдено по: http://css.dzone.com/polls/what-new-feature-php-54Php 5,4 укупорочные
Может кто-то пожалуйста, объясните, что он делает? Предпочтительно с примером.
$that = $this;
$closure = function (...) use ($that) { ... };
Найдено по: http://css.dzone.com/polls/what-new-feature-php-54Php 5,4 укупорочные
Может кто-то пожалуйста, объясните, что он делает? Предпочтительно с примером.
, что есть способ, чтобы иметь доступ к методам класса из анонимной функции, определенной в нем. но поскольку заголовок «закрытие php 5.4» вам больше не нужно, это одно из обновлений, сделанных в 5.4, вы можете использовать $ this (без передачи его другой переменной, такой как $ this). вы можете увидеть здесь http://php.net/ChangeLog-5.php, что одно из изменений: «Добавлено закрытие $ этой поддержки назад»
Закрытие является анонимной функцией, часто используемой с обратными вызовами. Например:
my_function_with_callback('some-parameter', function() {
//Do stuff here
});
переприсваивания означает, что вы можете использовать $ это в anomymous функции, вместо того, чтобы использовать: «использовать ($ Var)», так что, когда вы находитесь в классе:
class MyClass {
public function myMethod() {
$anon = function() {
//$this still refers to MyClass here
};
}
}
Надеется, что это отвечает на ваш вопрос
Угадав, это позволяет функции работать как метод объекта $ this (т. е. иметь доступ к его методам и атрибутам) - что говорят документы php.net? – halfer
Я считаю, что это для анонимных функций: http://il2.php.net/manual/en/functions.anonymous.php – Ynhockey
Вы конкретно спрашиваете о '$ this' /' $ that' или об анонимных функциях? – deceze