簡體   English   中英

PHP閉包 - 如何用$ this調用類函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM