我想創建一個類的獲取方法;這裏是一個(可能是過度)簡化例如:
<?php
class User {
protected $name;
public function fetch($id) {
global $db;
$sql = "SELECT [name] FROM [user] WHERE [id] = :id";
$ins = array ('id' => $id);
$stmt = $db->prepare($sql);
$stmt->setFetchMode(PDO::FETCH_INTO, $this);
$stmt->execute($ins);
$stmt->fetch();
}
}
現在,這將是可愛的,如果這個工作,但是,當然,它不作爲$name
是受保護的財產,因此我得到的錯誤。
Cannot access protected property User::$name yadda yadda....
所以,我花了,而在網上淘,試圖找到一種替代方法,雖然我已經發現了一些建議,這可以工作,我希望有人也許能夠推薦的方法。顯然我不想公開用戶的屬性或使用魔術設置器。
如果獲取成功,您可以使用'stdClass'並將其中的公共屬性複製到受保護的屬性中? – halfer
檢查這個答案:http://stackoverflow.com/a/3296207/612202 –
我已經實現了該答案的建議。雖然我不知道;感覺有點過度! – user1187347