Mam klasę Logger
, która między innymi ma metodę Log
.
Jak Log
jest najczęstszą użycie instancji Logger
, mam przewodowy __invoke
zadzwonić Log
PHP Callable Object jako obiekt Członek
Inna klasa „Site” zawiera człon „log”, wystąpienie Logger.
dlaczego to praca:
$Log = $this->Log;
$Log("Message");
Ale nie to:
$this->Log("Message");
Były powiedzie się z "PHP Fatal error: Zadzwoń do niezdefiniowanej metody Site :: log()"
Czy to ograniczenie realizacji obiektu wywoływalnego, czy też coś nie rozumiem?
Głównie z powodu luźnego pisania. Nie można w żaden sposób zasugerować, co masz zamiar zrobić, więc domyślnie błędne jest wcześniej. –
Napisałem dziwny preparser, który pozwala pisać takie wyrażenia: http://code.google.com/p/php-preparser/ :) (czy mogę "reklamować" tutaj moje rozwiązania open source?) –
Ten przykład nie jest już istotny, ta składnia działa teraz. –