PHP 5.4.5, hier. Ich versuche, ein Objekt aufzurufen, das als Mitglied eines anderen Objekts gespeichert ist. So (sehr grob)
%Vor%Das erzeugt natürlich einen Laufzeitfehler, weil es keine Methode namens a gibt. Aber wenn ich den Anruf so schreibe:
%Vor%dann bekomme ich einen Syntaxfehler.
Natürlich kann ich schreiben
%Vor%aber das scheint unerträglich hässlich und untergräbt eher den Sinn von Funktoren. Ich habe mich nur gefragt, ob es einen besseren (oder offiziellen) Weg gibt.
Es gibt drei Möglichkeiten:
Rufen Sie direkt __invoke
auf, was Sie bereits erwähnt haben:
Durch Zuweisung zu einer Variablen:
%Vor% Mit call_user_func
:
Der letzte ist wahrscheinlich, was Sie suchen. Es hat den Vorteil, dass es mit jedem abrufbar funktioniert.