__invoke-metodi
Taikamenetelmä __invoke mahdollistaa luokan ilmentymän kutsumisen funktiona.
Kun oliota kutsutaan funktiona, PHP kutsuu automaattisesti tätä metodia.
Metodi voi ottaa vastaan parametreja ja palauttaa arvon kuten tavallinen funktio.
Syntaksi
class MyClass {
public function __invoke(...$args) {
// toteutus
}
}
Esimerkki
Luodaan luokka metodilla __invoke ja kutsutaan oliota funktiona:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Koodin suorituksen tulos:
'Hello, John!'
Esimerkki
__invoke:n käyttö useilla parametreilla:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Koodin suorituksen tulos:
8
Esimerkki
Olion kutsumiskelpoisuuden tarkistus is_callable:n avulla:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Koodin suorituksen tulos:
false
true
Katso myös
-
metodi
__construct,
joka on luokan konstruktori -
metodi
__toString,
joka mahdollistaa olion esittämisen merkkijonona