__invoke Metodu
__invoke büyülü metodu, bir sınıf örneğinin fonksiyon gibi çağrılmasına olanak tanır.
Bir nesne fonksiyon gibi çağrıldığında, PHP otomatik olarak bu metodu çağırır.
Metot, parametreler alabilir ve bir değer döndürebilir, tıpkı normal bir fonksiyon gibi.
Sözdizimi
class MyClass {
public function __invoke(...$args) {
// uygulama
}
}
Örnek
__invoke metoduna sahip bir sınıf oluşturalım ve nesneyi bir fonksiyon gibi çağıralım:
<?php
class Greeter {
public function __invoke($name) {
return "Hello, $name!";
}
}
$greet = new Greeter();
echo $greet('John');
?>
Kodun çalıştırılmasının sonucu:
'Hello, John!'
Örnek
__invoke'un birden fazla parametre ile kullanımı:
<?php
class Calculator {
public function __invoke($a, $b) {
return $a + $b;
}
}
$calc = new Calculator();
echo $calc(5, 3);
?>
Kodun çalıştırılmasının sonucu:
8
Örnek
is_callable kullanarak bir nesnenin çağrılabilir olup olmadığının kontrol edilmesi:
<?php
class Test {}
$obj1 = new Test();
$obj2 = new class { public function __invoke() {} };
var_dump(is_callable($obj1));
var_dump(is_callable($obj2));
?>
Kodun çalıştırılmasının sonucu:
false
true
Ayrıca Bakınız
-
metodu
__construct,
bir sınıfın kurucusudur -
metodu
__toString,
nesnenin bir string olarak temsil edilmesine izin verir