__invoke metodu
Sehrli __invoke metodu sinif nümunəsinin funksiya kimi çağırılmasına imkan verir.
Obyekt funksiya kimi çağırılanda, PHP avtomatik olaraq bu metodu çağırır.
Metod parametrlər qəbul edə və adi funksiya kimi qiymət qaytara bilər.
Sintaksis
class MyClass {
public function __invoke(...$args) {
// realizasiya
}
}
Nümunə
__invoke metodu olan sinif yaradaq və obyekti funksiya kimi çağıraq:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Kodun icrasının nəticəsi:
'Hello, John!'
Nümunə
__invoke metodundan bir neçə parametrlə istifadə:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Kodun icrasının nəticəsi:
8
Nümunə
is_callable ilə obyektin çağırıla bilən olub-olmadığının yoxlanılması:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Kodun icrasının nəticəsi:
false
true
Həmçinin bax
-
__constructmetodu,
hansı ki, sinfin konstruktorudur -
__toStringmetodu,
hansı ki, obyektin sətir kimi təqdim olunmasına imkan verir