一般会使codeigniter对象或php无效吗?

时间:2012-09-11 03:17:04

标签: php codeigniter memory-management memory-leaks codeigniter-2

我正在使用codeigniter和PHP来构建一个Web应用程序,由于我必须执行大量查询,因此我必须在模型内部定义/使用很多对象。 有时我必须在循环内多次使用同一个对象,例如:

  $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提供了更有效的方法来确保没有内存泄漏。

在使用之前,对象是否应在循环内无效以确保没有内存泄漏?

任何指示方向都将受到赞赏。 感谢!!!

2 个答案:

答案 0 :(得分:0)

分配null毫无意义:

  1. php> = 5.3
  2. 无法使用数小时的应用程序
  3. 你匹配上面的两个项目吗?

答案 1 :(得分:0)

unset()应该从内存中释放变量或对象。但是,PHP没有很好的垃圾收集。他们正试图用5.3的新循环垃圾收集来改进它,但它仍然存在挑战。