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