
内存泄露
4回答
11216浏览
错误提示:Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /Applications/XAMPP/xamppfiles/htdocs/VIP ...
(展开全部)
错误提示:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in /Applications/XAMPP/xamppfiles/htdocs/VIP/App/Home/Controller/IndexController.class.php on line 42
处理数组的方法:
/** * 算法:非常重要 - 会导致内存溢出 - 需要更换一种思路解决内存溢出的问题? * * 根据安置人的位置,安置人的层级和当前用户的层级计算区域奖对应的 * 会员位置集合数组 * @param string $rehousepos 安置人位置pos * @param string $rehousefloor 安置人层级floor * @param string $currentfloor 当前入会会员的层级floor * @param array $result 待返回的会员位置集合数组 */ function getPosArray($rehousepos, $rehousefloor, $currentfloor, $type = 'right') { $result = [];//返回位置数组 $now = [];//当前的数组,会清空 $other = [];//中间数组 $floorCha = $currentfloor-$rehousefloor; for ($i=1;$i<=$floorCha;$i++) { if($i==1) { if($type == 'right') { $now[] = $result[] = $rehousepos*2+1; }else{ $now[] = $result[] = $rehousepos*2; } }else{ foreach ($now as $key=>$value) { $other[] = $result[] = $value*2; $other[] = $result[] = $value*2+1; } unset($now); $now=$other;//数组替换 unset($other); } } return $result; }
调用方式:
print_r($this->getPosArray(4, 3, 29));
第三个参数大于20的时候就会出现内存泄露的情况,这个问题导致系统出现问题,希望能够得到高手的思路或者是方法?谢谢~
收起
4回答
11216浏览
2016-01-13