我有一個相對簡單的問題,雖然在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();
預先感謝
都不是。我會有一個「冰箱」,裏面收藏着「食物」(也可能是「飲料」等) – kero 2014-11-04 23:26:26
@developerwjk。如果示例1中的靜態函數有代碼從數據庫中檢索食物項,該怎麼辦?這與我實際嘗試實現的情況類似。 – Typhoon101 2014-11-04 23:42:59
在這種情況下,我認爲你應該命名方法'getAllFoodFromDB()'以避免與類的實例中的'getAllFood()'混淆。 – developerwjk 2014-11-04 23:48:58