@CaptainJustness

Как вызывать динамический метод класса как статический в PHP?

Всем привет.

Как вызывать динамический метод класса статическим вызовом в PHP?

Например в laravel при работе с моделями можно вызвать динамические классы статическим способом:
// вызов динамического метода
$model = new Model();
$model->where(...)->get();

// вызов динамического метода как статический
Model::where(...)->get();

При этом в главном классе Model описан метод вот так public function where(...
Если я аналогично делаю и вызываю вот так Class::mymethod() то ошибка. Как они так сделали, чтобы работало?
  • Вопрос задан
  • 919 просмотров
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Перегрузка https://www.php.net/manual/ru/language.oop5.overlo...
Метод __callStatic

А внутри упрощенно, что то вроде

public static function __callStatic($name) {
  $model = new self(); // или new static(); если выносить этот метод в общего предка.
  return $model->$name();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы