Как построить цепочку вызовов статичной функции? Здравствуйте! Не пойму как правильно (и возможно ли это?) строить цепочку вызовов у статичных функций класса?
Например, USER::take('email')->where(['id' => 1]); // Или что-то подобное.

21 Авг 2019 в 07:01
177 +1
0
Ответы
1

В общем случае статические методы в классе не могут вызываться в цепочке, так как цепочка методов работает обычно для экземпляров класса. Однако, можно использовать статические методы для возвращения объекта класса и вызывать методы цепочкой у этого объекта.

В вашем примере, если вы хотите использовать цепочку вызовов для статических методов, вам нужно изменить структуру класса USER, чтобы он возвращал объект класса USER после вызова статического метода take.

Например, вы можете изменить класс USER следующим образом:

class USER {
protected static $query;
public static function take($field) {
self::$query = new self();
return self::$query;
}
public function where($params) {
// реализация метода where
return $this;
}
}

И теперь вы сможете использовать цепочку вызовов:

USER::take('email')->where(['id' => 1]);

Пожалуйста, обратите внимание, что это лишь пример, и реализация может зависеть от вашей конкретной задачи и структуры класса.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир