我使用codeigniter和PHP來構建一個web應用程序,並且由於需要執行大量查詢,我必須定義/使用很多對象。 有時我必須使用同一個對象多次循環中,例如:取消codeigniter對象或一般的PHP?
$dbData = $this->mydb->query($dbQuery);
if($dbData->num_rows() >0){ //check if rows were returned
$dbResult = $dbData->result();
foreach($dbResult as $index => $row){
$dbArray[$row->JOB_NAME_STG] = $row->REC_LOADED;
}
在一般的編程實踐中,你應該廢止的對象,一旦他們不再需要的,但我一直沒能找到任何細節在確保所有對象都無效的最佳方法中避免了一般的codeigniter或php的內存泄漏。
將NULL分配給函數末尾的對象是否足夠?
$dbData = $this->mydb->query($dbQuery);
$dbData = NULL;
或者codeigniter有更有效的方法確保沒有內存泄漏。
在使用之前應該將對象在循環內置空以確保沒有內存泄漏?
任何指針的方向將不勝感激。 謝謝!
「在一般的編程習慣中,一旦不再需要它們,就應該使對象無效」---誰告訴過你的?這不是真的。 – zerkms
我從未使任何對象無效。我不認爲我們應該這樣做 –
我認爲你不應該取消指向對象的指針......你應該取消它們。如果你使指針無效,那麼指針現在指向值NULL並且失去對原始存儲器的引用...因此強制垃圾收集將其排除!至少,你可以這樣做:'unset($ dbData); $ dbData = NULL;'按此順序。 – Jimmyt1988