老旧话题:yield是个什么玩意(上)

Back-End Socket编程 老李误删所有用户后来接盘脏数据的路人甲 于 2018-09-13 09:15:22

共收到 1 条回复

老李误删所有用户后来接盘脏数据的路人甲 #1 · 于 2019-07-02 22:06:56 回复

这不是 bug ,而是因为 foreach 的工作原理。遍历迭代对象的时候,每一次循环之后都会执行一次 next() ,对于 geneator 的实例, next() 相当于 send(null),虽然这种描述不太准确。所以上面的代码每次走到偶数时,没有数字显示 对于迭代对象 foreach($arr as $key => $value) 实质上是 foreach($key = $arr->key(),$value = $arr->current(); $arr->valid();$arr->next()) 的简写形式
回帖
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册

总共收到 1 个回复

参与回复