__callStatic Metodu

__callStatic metodu, PHP'de var olmayan veya erişilemeyen bir statik metot çağrılmaya çalışıldığında otomatik olarak çağrılan büyülü bir metottur. İlk parametre olarak çağrılan metodun adını, ikinci parametre olarak da iletilen argümanların bir dizisini alır.

Sözdizimi

phppublic static function __callStatic(string $name, array $arguments);

Örnek

__callStatic metoduna sahip bir sınıf oluşturalım ve var olmayan bir statik metot çağırmaya çalışalım:

php<?php
class MyClass {
  public static function __callStatic($name, $args) {
    echo "Called static method '$name' with arguments: ";
    print_r($args);
  }
}

MyClass::nonExistentMethod(1, 2, 3);
?>

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

phpCalled static method 'nonExistentMethod' with arguments: [1, 2, 3]

Örnek

Farklı türlerde nesneler oluşturmak için basit bir cephe uygulayalım:

php<?php
class Factory {
  public static function __callStatic($name, $args) {
    if (strpos($name, 'create') === 0) {
      $className = substr($name, 6);
      return new $className(...$args);
    }
    throw new Exception("Method $name not found");
  }
}

class User {}
$user = Factory::createUser();
var_dump($user instanceof User);
?>

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

phptrue

Ayrıca Bakınız

  • __call metodu,
    nesnenin var olmayan metod çağrılarını yakalar
  • __get metodu,
    var olmayan özelliklere erişimleri yakalar