Czy funkcja statycznego anonimowego PHP naprawdę działa?
Próbuję nauczyć się PHP, a teraz utknąłem w „statycznej funkcji anonimowej”.
Znalazłem to w samouczku (http://www.slideshare.net/melechi/php-53-part-2-lambda-functions-closures-presentation)
„Orientacja obiektu
Funkcje lambda to Zamknięcia, ponieważ automatycznie wiążą się z zakresem klasy, w której zostały utworzone.'$this
„nie zawsze jest potrzebny w tym zakresie.Usuwanie ”$this
„może zaoszczędzić na pamięci.Możesz zablokować to zachowanie, deklarując funkcję Lambda jako statyczną. ”Co jest nie tak z tym kodem?
Dostaję ten błąd:
Błąd analizy: błąd analizy, oczekiwanie `T_PAAMAYIM_NEKUDOTAYIM 'w C: wampir www z-final a.php w linii 11
Dlaczego ta linia kodu nie działa ”zwraca funkcję statyczną () {var_dump ($ this);};” ?
class foo
{
public function getLambda()
{
return function(){var_dump($this);};
}
public function getStaticLambda()
{
return static function(){var_dump($this);};
}
}
$foo = new foo();
$lambda = $foo->getLambda();
$staticLambda = $foo->getStaticLambda();
$lambda();
$staticLambda();