__invoke metodu
Majik metodu __invoke klasynyň nusgasynyň funksiýa hökmünde çagyrylmagyna mümkinçilik berýär.
Obyekt funksiýa hökmünde çagyrylanynda, PHP awtomatik bu metodu çagyryr.
Metod adaty funksiýa ýaly parametrleri kabul edip we bahany yzyna gaýtaryp biler.
Sintaksis
class MyClass {
public function __invoke(...$args) {
// amala aşyrylyşy
}
}
Mysal
__invoke metody bilen klas döredeliň we obyekti funksiýa hökmünde çagyrýalyň:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Kodyň ýerine ýetiriliş netijesi:
'Hello, John!'
Mysal
__invoke-y birnäçe parametr bilen ulanmak:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Kodyň ýerine ýetiriliş netijesi:
8
Mysal
Obyektiň çagyrylyp bilinýändigini is_callable arkaly barlamak:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Kodyň ýerine ýetiriliş netijesi:
false
true
Şeýle-de görüň
-
metodu
__construct,
klasyň gurujysy bolýar -
metodu
__toString,
obyektiň setir görnüşinde görkezilmegine mümkinçilik berýär