__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әдісі,
ол объектінің жол түрінде көрсетілуін қамтамасыз етеді