__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

phpclass 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<?php
  class Greeter {
    public function __invoke($name) {
      return "Hello, $name!";
    }
  }
  
  $greet = new Greeter();
  echo $greet('John');
?>

Kodun çalıştırılmasının sonucu:

php'Hello, John!'

Örnek

__invoke'un birden fazla parametre ile kullanımı:

php<?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:

php8

Örnek

is_callable kullanarak bir nesnenin çağrılabilir olup olmadığının kontrol edilmesi:

php<?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:

phpfalse
true

Ayrıca Bakınız

  • metodu __construct,
    bir sınıfın kurucusudur
  • metodu __toString,
    nesnenin bir string olarak temsil edilmesine izin verir