這個問題牽涉到 PHP 內部 copy-on-write 記憶體管理機制,解釋起來挺麻煩的。
我直接說解法,把順序改一下,改成:
$custs = array();
$i = 0;
while ($obj = mysql_fetch_object($rows)) {
$custs[$i] = $cust; //copy
$custs[$i]->getData($obj->CUST_ID); //then write
echo $i."-".$custs[$i]->cust_id."<br>";
$i++;
}