__callStatic методу

__callStatic методу PHP'деги сихирдүү метод болуп саналат, ал бар болбогон же жеткиликтүү эмес статикалык методду чакырууга аракет кылынганда автоматтык түрдө чакырылат. Ал биринчи параметр катары чакырылып жаткан методдун атын, экинчи параметр катары берилген аргументтердин массивин кабыл алат.

Синтаксис

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

Мисал

__callStatic методу бар класс түзөлү жана бар болбогон статикалык методду чакырууга аракет кылалы:

php<?php
class MyClass {
  public static function __callStatic($name, $args) {
    echo "Чакырылган статикалык метод '$name' аргументтер менен: ";
    print_r($args);
  }
}

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

Кодду иштетүүнүн натыйжасы:

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

Мисал

Ар кандай түрдөгү объектилерди түзүү үчүн жөнөкөй фасад ишке ашыралы:

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);
?>

Кодду иштетүүнүн натыйжасы:

phptrue

Дагы караңыз

  • __call методу,
    объекттин бар болбогон методдорун чакырууларды кармаган
  • __get методу,
    бар болбогон касиеттерге кирүүлөрдү кармаган