Metode __invoke
Die magiese metode __invoke laat 'n instansie van 'n klas toe om as 'n funksie aangeroep te word.
Wanneer 'n objek as 'n funksie aangeroep word, roep PHP outomaties hierdie metode op.
Die metode kan parameters aanvaar en 'n waarde teruggee, soos 'n gewone funksie.
Sintaksis
class MyClass {
public function __invoke(...$args) {
// implementering
}
}
Voorbeeld
Kom ons skep 'n klas met 'n metode __invoke en roep die objek as 'n funksie aan:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Resultaat van die uitvoering van die kode:
'Hello, John!'
Voorbeeld
Gebruik van __invoke met verskeie parameters:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Resultaat van die uitvoering van die kode:
8
Voorbeeld
Kontroleer of 'n objek oproepbaar is deur is_callable te gebruik:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Resultaat van die uitvoering van die kode:
false
true
Sien ook
-
metode
__construct,
wat die konstruktor van die klas is -
metode
__toString,
wat 'n objek toelaat om as 'n string voorgestel te word