A __invoke metódus
A mágikus __invoke metódus lehetővé teszi egy osztály példányának függvényként való meghívását.
Amikor egy objektumot függvényként hívnak meg, a PHP automatikusan meghívja ezt a metódust.
A metódus paramétereket fogadhat és értéket adhat vissza, mint egy közönséges függvény.
Szintaxis
class MyClass {
public function __invoke(...$args) {
// megvalósítás
}
}
Példa
Hozzunk létre egy osztályt __invoke metódussal és hívjuk meg az objektumot függvényként:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
A kód végrehajtásának eredménye:
'Hello, John!'
Példa
A __invoke használata több paraméterrel:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
A kód végrehajtásának eredménye:
8
Példa
Objektum meghívhatóságának ellenőrzése a is_callable segítségével:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
A kód végrehajtásának eredménye:
false
true
Lásd még
-
a
__constructmetódus,
amely az osztály konstruktora -
a
__toStringmetódus,
amely lehetővé teszi az objektum sztringként való megjelenítését