登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: php的超级巨坑:对 null 进行 foreach 时会产生严重的问题     [回主站]     [分站链接]
php的超级巨坑:对 null 进行 foreach 时会产生严重的问题
clq
浏览(280) - 2019-11-12 14:12:36 发表 编辑

关键字: php

php的超级巨坑:对 null 进行 foreach 时会产生严重的问题

类似这样的代码
foreach ($result_set as $row)
对同的版本下会产生不同的危害。对稍低版本下会直接异常使后面的进程全部结束,甚至不产生任何输出 -- 有可能出现一句警告。
对高版本 php 来说倒是有可能会正常,但更严重的是有说法认为这会导致严重的内存泄漏问题!

参考 https://segmentfault.com/q/1010000006093364
--------------------------------------------------------
php长时间运行foreach遍历null内存溢出?

foreach php

2.5k 次浏览

while (1){
echo memory_get_usage();
echo ';';
foreach(null as $each){
echo 1;
}
sleep(1);
}

控制台输出显示内存占用量不断增加,将null替换为[]则不会出现此现象。求解释?
--------------------------------------------------------

有网友认为最好先判断是否为空,也有网友认为加一个强制转换可解决。但总而言之,这实在是个糟糕的设计(实现?)

https://www.oschina.net/question/815742_75657?sort=default

--------------------------------------------------------

voov 2012/10/25 13:06
引用来自“hylent”的答案

foreach ((array) $arr as $a)

$arr是null时无压力

$arr 原本为array时候 强制转换类型咋转换的?

没读过源码






总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1