foreach用引用循环没unset,元素被悄悄改了找bug仨小时,之后循环完立刻unset,再没出过

10年前 (2016-07-04)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

新手写PHP,函数传值用了引用,外面的变量被函数偷偷改了,找bug找半天,其实引用传值要慎用,不知道什么时候就改了外面的变量。第一,普通传值用值传递,别随便加&引用,不然函数里改了参数,外面的变量也跟着变;第二,必须用引用的时候,写注释标清楚,别让别人看代码不知道变量被改了;第三,foreach循环里用引用遍历数组,循环完把变量unset,不然下次循环用同一个变量,值被悄悄改了;第四,别为了少传参数用引用,可读性差,bug还多。

我之前写代码,foreach用引用遍历数组,循环完没unset,后面的数组赋值,之前的元素被悄悄改了,找bug找了仨小时,之后循环引用完立刻unset,再也没出过这个问题。很多新手觉得引用传值高级,其实用不好就是隐形bug。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/3945.html

0
回帖

foreach用引用循环没unset,元素被悄悄改了找bug仨小时,之后循环完立刻unset,再没出过 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息