Die __invoke-Methode
Die magische Methode __invoke erlaubt es einer Klasseninstanz, wie eine Funktion aufgerufen zu werden.
Wenn ein Objekt wie eine Funktion aufgerufen wird, ruft PHP automatisch diese Methode auf.
Die Methode kann Parameter entgegennehmen und einen Wert zurückgeben, wie eine normale Funktion.
Syntax
class MyClass {
public function __invoke(...$args) {
// Implementierung
}
}
Beispiel
Erstellen wir eine Klasse mit der Methode __invoke und rufen das Objekt als Funktion auf:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Ergebnis der Codeausführung:
'Hello, John!'
Beispiel
Verwendung von __invoke mit mehreren Parametern:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Ergebnis der Codeausführung:
8
Beispiel
Prüfung, ob ein Objekt mit is_callable aufrufbar ist:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Ergebnis der Codeausführung:
false
true
Siehe auch
-
die Methode
__construct,
die der Konstruktor der Klasse ist -
die Methode
__toString,
die es erlaubt, das Objekt als Zeichenkette darzustellen