__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,
бул объектке сап түрүндө көрсөтүлүүгө мүмкүнчүлүк берет