Metoden __invoke
Den magiske metode __invoke gør det muligt for en instans af en klasse at blive kaldt som en funktion.
Når et objekt kaldes som en funktion, kalder PHP automatisk denne metode.
Metoden kan tage parametre og returnere en værdi, som en almindelig funktion.
Syntaks
class MyClass {
public function __invoke(...$args) {
// implementering
}
}
Eksempel
Lad os oprette en klasse med metoden __invoke og kalde objektet som en funktion:
<?php
class Greeter {
public function __invoke($name) {
return "Hej, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Resultat af kodeudførelse:
'Hej, John!'
Eksempel
Brug af __invoke med flere parametre:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Resultat af kodeudførelse:
8
Eksempel
Tjek om et objekt er kaldeligt ved hjælp af is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Resultat af kodeudførelse:
false
true
Se også
-
metoden
__construct,
som er klassens konstruktør -
metoden
__toString,
som gør det muligt for et objekt at blive repræsenteret som en streng