Wie kann ich in PHP eine Klasse Foo
definieren, die so etwas wie zu tun erlaubt:Definieren Sie eine Klasse Funktion Operator
$foo = new Foo();
$foo->bar;
$foo();
Wie kann ich in PHP eine Klasse Foo
definieren, die so etwas wie zu tun erlaubt:Definieren Sie eine Klasse Funktion Operator
$foo = new Foo();
$foo->bar;
$foo();
Sie fragen über aufrufbare Objekte oder Behandlung von Objekten als Funktionen. Um der Lage sein, das zu tun, müssen Sie __invoke()
Verfahren implementieren, wie folgt aus:
class Foo {
public function __invoke()
{
echo 'invoke!';
}
}
Lesen Sie mehr:
Sie können aber auch $foo->bar;
so oft nennen, wie Sie wollen, wie Sie schreiben können : $a = 5; $a;
- aber es wird keine Wirkung haben. Es ist nur ein Feld. Wenn es aufrufbar ist, müssen Sie Klammern hinzufügen, um es aufzurufen.
http://stackoverflow.com/documentation/php/504/classes-and-objects#t=201609051452012077782 – Phiter
Beginnen Sie mit dem Lesen der [PHP Docs] (http://www.php.net/manual/en/ language.oop5.magic.php) aber was erwarten Sie '$ foo-> bar' und' $ foo() 'eigentlich? –
Ich sehe nichts falsch mit dem Code, vorausgesetzt, 'Foo' hat eine' _invoke' Methode. –