SQL 結果セットの要素を含むオブジェクトを配列にプッシュしようとしています。私のコードは次のようなものです:
$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;
}
結果セットは正しいのですが、foreach ループが終了した後、最後のレコードセットの値で配列セルが上書きされます。たとえば、これらの結果{1,'type1','user','pass'}
が{2,'type2','foo','bar'}
ある場合、ループの外側で配列を print_r すると$data
、2 番目の結果セットだけが 2 回繰り返されます。私は何を間違っていますか?