Metoda __invoke
Magična metoda __invoke omogoča, da primerek razreda kličemo kot funkcijo.
Ko je objekt poklican kot funkcija, PHP samodejno pokliče to metodo.
Metoda lahko sprejme parametre in vrne vrednost, kot običajna funkcija.
Sintaksa
class MyClass {
public function __invoke(...$args) {
// implementacija
}
}
Primer
Ustvarimo razred z metodo __invoke in pokličimo objekt kot funkcijo:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Rezultat izvajanja kode:
'Hello, John!'
Primer
Uporaba __invoke z več parametri:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Rezultat izvajanja kode:
8
Primer
Preverjanje, ali je objekt klicen s pomočjo is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Rezultat izvajanja kode:
false
true
Glejte tudi
-
metoda
__construct,
ki je konstruktor razreda -
metoda
__toString,
ki omogoča, da je objekt predstavljen kot niz