__invoke методу
__invoke сыйкырдуу методу класстын инстанциясын функция катары чакырылууга мүмкүнчүлүк берет.
Объект функция катары чакырылганда, PHP бул методду автоматтык түрдө чакырат.
Метод кадимки функция сыяктуу эле параметрлерди кабыл ала алат жана маани кайтара алат.
Синтаксис
phpclass MyClass {
public function __invoke(...$args) {
// ишке ашыруу
}
}
Мисал
__invoke методу бар класс түзөлү жана объекти функция катары чакырылат:
php<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Кодду иштетүүнүн натыйжасы:
php'Hello, John!'
Мисал
__invoke бир нече параметрлер менен колдонуу:
php<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Кодду иштетүүнүн натыйжасы:
php8
Мисал
Объект чакырыла алабы же жокпу, is_callable жардамы менен текшерүү:
php<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Кодду иштетүүнүн натыйжасы:
phpfalse
true
Ошондой эле караңыз
-
метод
__construct,
бул класстын конструктору -
метод
__toString,
бул объектке сап түрүндө көрсөтүлүүгө мүмкүнчүлүк берет