Метод __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);
?>

Резултат извршавања кода:

phpПозван статички метод 'nonExistentMethod' са аргументима: [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("Метод $name није пронађен");
  }
}

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

Резултат извршавања кода:

phptrue

Погледајте такође

  • метод __call,
    који пресреће позиве непостојећих метода објекта
  • метод __get,
    који пресреће приступање непостојећим својствима