我試圖將包含來自sql結果集的元素的對象插入到數組中。我的代碼是這樣的:在foreach循環後覆蓋的數組
$data = array();
$sql = "SELECT id,type,name,username FROM users";
foreach ($conn->query($sql) as $row) {
$this->set_id($row['id']);
$this->set_type($row['type']);
$this->set_username($row['username']);
$this->set_password($row['password']);
$data[] = $this;
}
我ResultSet是正確的,但我得到的foreach循環結束後的值覆蓋從過去的記錄我的陣列單元。例如,如果我有這些結果{1,'type1','user','pass'}
,{2,'type2','foo','bar'}
,當我print_r我的$data
數組循環的外側,我只得到第二個結果集重複兩次。我究竟做錯了什麼?
您每次循環時更新$ this的單個實例,然後將每個數組元素指向相同的$ this ....如果$ this是您的模型,那麼您需要每個數組元素的新實例 – 2013-02-28 09:28:06