Njia __invoke
Njia ya kichawi __invoke huruhusu mfano wa darasa kuitwa kama kitendo.
Wakati kitu kikiitwa kama kitendo, PHP automatikali huita njia hii.
Njia inaweza kukubali vigezo na kurudisha thamani, kama kitendo cha kawaida.
Syntax
class MyClass {
public function __invoke(...$args) {
// utekelezaji
}
}
Mfano
Tutengeneze darasa lenye njia __invoke na tuite kitu kama kitendo:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Matokeo ya kutekeleza kodi:
'Hello, John!'
Mfano
Matumizi ya __invoke na vigezo vingi:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Matokeo ya kutekeleza kodi:
8
Mfano
Kukagua ikiwa kitu kinaweza kutekelezwa kwa kutumia is_callable:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Matokeo ya kutekeleza kodi:
false
true
Angalia Pia
-
njia
__construct,
ambayo ni mkabidhi wa darasa -
njia
__toString,
ambayo huruhusu kitu kuwakilishwa kama mfuatano wa herufi