Metode __invoke
Maģiskā metode __invoke ļauj klases instances tikt izsauktai kā funkcijai.
Kad objekts tiek izsaukts kā funkcija, PHP automātiski izsauc šo metodi.
Metode var pieņemt parametrus un atgriezt vērtību, tāpat kā parasta funkcija.
Sintakse
class MyClass {
public function __invoke(...$args) {
// implementācija
}
}
Piemērs
Izveidosim klasi ar metodi __invoke un izsauksim objektu kā funkciju:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Koda izpildes rezultāts:
'Hello, John!'
Piemērs
__invoke lietošana ar vairākiem parametriem:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Koda izpildes rezultāts:
8
Piemērs
Pārbaude, vai objekts ir izsaukams, izmantojot is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Koda izpildes rezultāts:
false
true
Skatiet arī
-
metode
__construct,
kura ir klases konstruktors -
metode
__toString,
kura ļauj objektam tikt attēlotam kā virknei