Metóda __invoke
Magická metóda __invoke umožňuje inštancii triedy byť volaná ako funkcia.
Keď je objekt volaný ako funkcia, PHP automaticky zavolá túto metódu.
Metóda môže prijímať parametre a vracať hodnotu, ako obyčajná funkcia.
Syntax
class MyClass {
public function __invoke(...$args) {
// implementácia
}
}
Príklad
Vytvoríme triedu s metódou __invoke a zavoláme objekt ako funkciu:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Výsledok vykonania kódu:
'Hello, John!'
Príklad
Použitie __invoke s viacerými parametrami:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Výsledok vykonania kódu:
8
Príklad
Kontrola, či je objekt volateľný pomocou is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Výsledok vykonania kódu:
false
true
Pozri tiež
-
metóda
__construct,
ktorá je konštruktorom triedy -
metóda
__toString,
ktorá umožňuje objektu byť reprezentovaný ako reťazec