2012-03-07 44 views
3
$that = $this; 
$closure = function (...) use ($that) { ... }; 

上找到:http://css.dzone.com/polls/what-new-feature-php-54的是PHP 5.4倒閉

可能有人請解釋它做什麼?最好用一個例子。

+0

猜測,它允許函數像對象$ this一樣操作(即有權訪問它的方法和屬性) - php.net文檔是怎麼說的? – halfer 2012-03-07 10:30:43

+0

我相信這是匿名函數:http://il2.php.net/manual/en/functions.anonymous.php – Ynhockey 2012-03-07 10:32:49

+0

你是否特別提問'$ this' /'$ that'或關於匿名函數? – deceze 2012-03-07 10:47:05

回答

1

這是一個辦法讓從它定義的匿名函數訪問類的方法。但是因爲標題是「php 5.4 closures」,所以你不需要再這樣做,這是5.4中的更新之一,你可以使用$ this(而不必將它傳遞給另一個變量,比如$)。你可以在這裏看到http://php.net/ChangeLog-5.php其中一個變化是「添加了閉包$這個支持」

0

閉包是一個匿名函數,通常與回調一起使用。例如:

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 
     }; 
    } 
} 

希望這回答你的問題