Методот __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,
кој овозможува објектот да биде претставен како стринг