关于php foreach的浅谈

前两天在看鸟哥的微博的时候发现了一个很有趣的问题关于PDO类的使用中有个buildparam这个方法的问题。

就是在我们执行这个方法中假设有两个key-value对中分别有两个值$arr = array(‘weibo‘=>‘weibo‘,‘niaoge‘=>‘niaoge‘);

假设在foreach($arr=>$v){

  $brr["weibo"] = $v["weibo"];

  $brr["niaoge"] = $v["niaoge"];

}

会出现$brr的key-value队是这样的 $brr = array("niaoge"=>"niaoge","weibo"=>"weibo");

为什么会产生这样的问题呢 就是因为在buildparam这个方法中它里面有引用传值的问题。所以在foreach一个数组中慎用引用传值啊。

第二个比较注意的就是在用foreach的过程中 我们要有一些心理预期啊。假设一个数组的值非常大的情况下,我们需要一点非常和注意的地方。这么做可能会超出php的内存设置。

在你的php.ini文件里设置memory_limit = 12M。我们知道在用foreach的过程中它是会产生映射的。比如一个数组有1000KB的,那么用foreach就会造成2000KB。那么就会超出我们刚才的PHP内存设置。所以duang报错。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。