Pracuję z anonimowych funkcji, gdzie tworzę funkcję anonimową na zewnątrz obiektu, a następnie dodanie go do obiektu, w którym później będą używane z __callStatic magii funkcjonować. Zamknięcia, które są dodawane, aby zawierać metody z klasy nadrzędnej. Zastanawiam się, czy będę w stanie nazwać te metody z zamknięcia?Anonymous Funkcja/Zamknięcie i korzystania siebie lub statyczne :: ::
Teraz otrzymuję ten błąd:
EmptyObject::addMethod('open', function(){
if (static::_hasAdapter(get_class(), __FUNCTION__))
return self::_callAdapter(get_class(), __FUNCTION__, $details);
echo '<p>You have mail!</p>';
});
generuje ten błąd:
Fatal error: Cannot access static:: when no class scope is active in
I
//Add the functions
EmptyObject::addMethod('open', function(){
if (EmptyObject::_hasAdapter('EmptyObject', __FUNCTION__))
return EmptyObject::_callAdapter('EmptyObject', __FUNCTION__, $details);
echo '<p>You have mail!</p>';
});
rzut ten błąd, ponieważ metoda jest chroniony
Fatal error: Uncaught exception 'BadMethodCallException' with message 'Method '_hasAdapter' was not found in class EmptyObject'
Old php .. W 5.5.9 widzę „static ::” w Anonimous funkcji –