foreach 引用变量造成的问题

经常使用引用变量 发现他确实用起来很舒服 特别是在foreach里面 但是最近只用过程中却出现了一个bug 记录以防止后面再出现同类问题

foreach ($order_list as $key => &$val){
    $val['status_message'] = $order->_order_status[$val['status']];
}
foreach($search as $key=>$val) {
    $Page->parameter[$key]   =   urlencode($val);
}

当上面两行代码在一起的时候就会造成下面多一行的情况 开始莫名奇妙后台一看才发现是上面的引用变量没有释放导致下面循环的时候数据会加到order_list 表 

array(7) {
  [0] => array(36) {
    ["id"] => string(3) "343"
    }
  }
  [6] => &string(1) "1"
}

处理方式1 

unset($val);

处理方式2

foreach($search as $k=>$v) {
    $Page->parameter[$k]   =   urlencode($v);
}

归纳一些常见的问题

1.filesize不能正确获取大于2G文件的大小

2.保存文件使用utf-8必须删除bom签名

3.json_encode只能支持utf-8编码

4含有字符的数字和数字比较有可能为真。

  测试如下代码'123abc'==123

记得再往上加



你可能感兴趣的:(php)