Meetod __invoke
Maagiline meetod __invoke võimaldab klassi eksemplaril kutsuda välja nagu funktsiooni.
Kui objekti kutsutakse nagu funktsiooni, kutsub PHP automaatselt seda meetodit välja.
Meetod võib võtta parameetreid ja tagastada väärtuse nagu tavaline funktsioon.
Süntaks
class MyClass {
public function __invoke(...$args) {
// implementatsioon
}
}
Näide
Loome klassi meetodiga __invoke ja kutsume objekti välja nagu funktsiooni:
<?php
class Greeter {
public function __invoke($name) {
return "Tere, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Koodi täitmise tulemus:
'Tere, John!'
Näide
__invoke kasutamine mitme parameetriga:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Koodi täitmise tulemus:
8
Näide
Objekti kutsumisvõime kontrollimine kasutades is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Koodi täitmise tulemus:
false
true
Vaata ka
-
meetod
__construct,
mis on klassi konstruktor -
meetod
__toString,
mis võimaldab objekti esitada stringina