У меня относительно простой вопрос, и хотя в Google есть много сообщений об этом, я не могу найти ни одного, который просто отвечает на вопрос.Допустимо ли смешивать статические и нестатические методы в одном классе?
Итак, короткий вопрос: «Допустимо ли смешивать статические и нестатические методы в одном классе?». Наверное, я действительно спрашиваю: «Хорошая практика придерживаться одного типа метода», или «есть ли вещи, которые следует учитывать при использовании обоих».
Например, если я строил класс, чтобы справиться с едой в моем холодильнике, что из перечисленного (или что-то еще) будет лучшим подходом
Пример 1:
Class Food
{
public function __construct($itemName, $itemDescription)
{
.... some code for a new item of food ....
}
public static function getAllFood()
{
.... some code to get all the items in my fridge ....
}
}
$food = new Food("apple", "Nice juicy Pink Lady apple");
Food::getAllFood();
Или Пример 2:
Class Food
{
public function __construct($itemName, $itemDescription)
{
.... some code for a new item of food ....
}
public function getAllFood()
{
.... some code to get all the items in my fridge ....
}
}
$food = new Food("apple", "Nice juicy Pink Lady apple");
$food->getAllFood();
заранее спасибо
ни. У меня был бы «холодильник», в котором хранится коллекция «Food» (и, возможно, «Drink» и т. Д.) – kero
@developerwjk.Что, если статическая функция в примере 1 имела код для извлечения продуктов из базы данных. Это похоже на то, что я на самом деле пытаюсь достичь. – Typhoon101
В этом случае я думаю, что вы должны называть метод 'getAllFoodFromDB()', чтобы избежать путаницы с 'getAllFood()' из экземпляра класса. – developerwjk