对于数组索引变化+引用参数共同导致出现的一个 bug

今天, 我们老板在群里发出了一个bug, 然后我打开了项目, 进行本地复现. 过了一段时间. 终于复现了这个问题


大致代码如下

  1. 以下代码会导致移除第一项的时候, 把一个Collection数组转化成对象(JSON数据)

  1. API获取数据的时候, 由于有这样的一段代码. 并且是函数的调用


  • getRandomAd这个方法的的排重filter是因为项目后期加了一个逻辑, 后面没想到是它来触发这个bug.
  • Collection的确是一个对象,PHP中对象作为参数传递也确实是一个引用. 但是由于直接的赋值,而不是在对象上修改数据, 导致外部的引用没有修改成功.(如果这时候使用transform而不是map就可以避免这个bug了)
点赞

发表评论