De __invoke-methode
De magische methode __invoke maakt het mogelijk dat een instantie van een klasse als een functie wordt aangeroepen.
Wanneer een object als een functie wordt aangeroepen, roept PHP automatisch deze methode aan.
De methode kan parameters accepteren en een waarde retourneren, net als een gewone functie.
Syntaxis
class MyClass {
public function __invoke(...$args) {
// implementatie
}
}
Voorbeeld
Laten we een klasse maken met de methode __invoke en het object als een functie aanroepen:
<?php
class Greeter {
public function __invoke($name) {
return "Hallo, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Resultaat van de code-uitvoering:
'Hallo, John!'
Voorbeeld
Gebruik van __invoke met meerdere parameters:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Resultaat van de code-uitvoering:
8
Voorbeeld
Controleren of een object aanroepbaar is met is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Resultaat van de code-uitvoering:
false
true
Zie ook
-
methode
__construct,
die de constructor van de klasse is -
methode
__toString,
die het mogelijk maakt dat een object als een string wordt weergegeven