Метод __invoke
Магични метод __invoke омогућава инстанци класе да буде позвана као функција.
Када се објекат позове као функција, PHP аутоматски позива овај метод.
Метод може да прихвата параметре и да враћа вредност, као обична функција.
Синтакса
class MyClass {
public function __invoke(...$args) {
// имплементација
}
}
Пример
Направимо класу са методом __invoke и позовимо објекат као функцију:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Резултат извршавања кода:
'Hello, John!'
Пример
Употреба __invoke са више параметара:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Резултат извршавања кода:
8
Пример
Провера да ли је објекат позивљив помоћу is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Резултат извршавања кода:
false
true
Види такође
-
метод
__construct,
која је конструктор класе -
метод
__toString,
која омогућава објекту да буде представљен у виду низа