__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,
у объектни сатр кўринишида ифодалаш имконини беради