PHPExcel内存泄漏问题的求解方法
然而,循环引用的存在(最新版本的1.6.5 PHPExcel似乎仍然要解决这个问题),如果对phpexcel_writer_excel5 PHPExcel和对象实例来完成多个Excel文件的生成操作的重复建设过程的一个HTTP请求,所有构造的对象实例不是HTTP请求的结束及时发布之前,导致内存泄漏。
解决方案是在phpexcel_worksheet类添加方法:
复制代码代码如下所示:
公共函数销毁(){
foreach(美元-> _cellcollection美元美元指数=假){
美元-> _cellcollection { $指数} = null;
}
}
在PHPExcel类添加方法:
复制代码代码如下所示:
公共函数销毁(){
foreach(美元-> _worksheetcollection美元美元指数=假){
美元-> _worksheetcollection { $指数} ->破坏();
美元-> _worksheetcollection { $指数} = null;
}
}
然后有一个显式调用::PHPExcel破坏()来解决循环引用的地方,资源回收是必要的。注意,__destruct()方法被调用时,对象被释放,如此循环引用的处理不能在__destruct进行()。