Metoda __invoke
Metoda magică __invoke permite unei instanțe de clasă să fie apelată ca o funcție.
Când un obiect este apelat ca o funcție, PHP apelează automat această metodă.
Metoda poate accepta parametri și poate returna o valoare, la fel ca o funcție obișnuită.
Sintaxă
class MyClass {
public function __invoke(...$args) {
// implementare
}
}
Exemplu
Să creăm o clasă cu metoda __invoke și să apelăm obiectul ca funcție:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Rezultatul executării codului:
'Hello, John!'
Exemplu
Utilizarea __invoke cu mai mulți parametri:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Rezultatul executării codului:
8
Exemplu
Verificarea dacă un obiect este apelabil folosind is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Rezultatul executării codului:
false
true
Vezi și
-
metoda
__construct,
care este constructorul clasei -
metoda
__toString,
care permite ca un obiect să fie reprezentat sub formă de șir de caractere