Метад __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
,
якая дазваляе аб'екту быць прадстаўленым у выглядзе радка