Méthode __invoke
La méthode magique __invoke permet à une instance de classe d'être appelée comme une fonction.
Lorsqu'un objet est appelé comme une fonction, PHP appelle automatiquement cette méthode.
La méthode peut accepter des paramètres et retourner une valeur, comme une fonction ordinaire.
Syntaxe
class MyClass {
public function __invoke(...$args) {
// implémentation
}
}
Exemple
Créons une classe avec la méthode __invoke et appelons l'objet comme une fonction :
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Résultat de l'exécution du code :
'Hello, John!'
Exemple
Utilisation de __invoke avec plusieurs paramètres :
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Résultat de l'exécution du code :
8
Exemple
Vérifier si un objet est appelable avec is_callable :
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Résultat de l'exécution du code :
false
true
Voir aussi
-
la méthode
__construct,
qui est le constructeur de la classe -
la méthode
__toString,
qui permet à un objet d'être représenté sous forme de chaîne