[英]PHP Closures - How do I call a class function with $this
我在使用PHP閉包時遇到了一些麻煩。
好吧,讓我們說我有:
$router->bind('~/~', function()
{
print "I'm on the home page";
});
$shel = new Shel($config, $router);
$shel->start();
現在,Shel的所有功能都被調用了。 在Shel里面,有一個函數load()。 有沒有辦法從我綁定的閉包調用Shel :: load(),使用$ this?
干杯!
PHP 5.3: https : //wiki.php.net/rfc/closures/object-extension
對於PHP 5.3 $,這種對閉包的支持被刪除了,因為無法達成共識如何以理智的方式實現它。 此RFC描述了在下一個PHP版本中可以實現它的可能道路。
所以在PHP 5.3中你必須解決一下:
$that = $this;
$router->bind('~/~', function() use ($that)
{
print "I'm on the home page";
});
對於5.4,您只需使用$ this。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.