__invoke metodi
__invoke sehrli metodi klass namunasini funksiya sifatida chaqirilishiga imkon beradi.
Ob'ekt funksiya sifatida chaqirilganda, PHP avtomatik ravishda ushbu metodni chaqiradi.
Metod oddiy funksiya kabi parametrlarni qabul qilishi va qiymat qaytarishi mumkin.
Sintaksis
class MyClass {
public function __invoke(...$args) {
// amalga oshirish
}
}
Misol
__invoke metodiga ega klass yaratamiz va ob'ektni funksiya sifatida chaqiramiz:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Kodni bajarish natijasi:
'Hello, John!'
Misol
__invoke metodini bir nechta parametrlar bilan qo'llash:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Kodni bajarish natijasi:
8
Misol
is_callable yordamida ob'ektning chaqirilishi mumkinligini tekshirish:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Kodni bajarish natijasi:
false
true
Shuningdek qarang
-
__constructmetodi,
bu klass konstruktori hisoblanadi -
__toStringmetodi,
bu ob'ektning satr ko'rinishida ifodalanishiga imkon beradi