Методи __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,
ки имкон медиҳад объект ҳамчун сатр тасвир шавад