我想知道,如果是一個很好的做法來聲明像一個對象的屬性:聲明一個對象的屬性了__construct功能
$this->name = $name;
出功能__construct
我想用數據庫表中的數據構建一個對象。但是這個對象只會在註冊時生成。我知道__construct函數總是返回一個對象,所以我不能得到一個錯誤的回報。所以我嘗試了以下方法:
//test.php
$mod = new item($id);
if($mod->validate()) {
$item = $mod;
}
class item {
protected $id;
public function __construct($id) {
$this->id = $id;
}
public function validate() {
$db = new db('restaurants_items_modifiers');
if($mod = $db->get($this->id)) {
$this->price = $mod['price'];
$this->name = $mod['name'];
$this->desc = $mod['desc'];
return true;
} else {
return false;
}
}
}
這樣做會很有效,但是這樣做是一種很好的做法嗎?或者我應該聲明__construct
函數中的所有內容?
我會做的一個改變是注入數據庫連接,而不是在'validate()'方法內部進行。 – Rasclatt
這很好。你可以在這裏看到更多的問題[函數__construct用於什麼?](https://stackoverflow.com/questions/455910/what-is-the-function-construct-used-for) – lgflorentino
此外,它可能更有意義的是將db注入'__construct($ db)'和'$ id'到'validate($ id)' – Rasclatt