You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP已废弃each()函数自定义替换实现myEach()代码正确性咨询

关于myEach函数返回数组的错误分析

这段代码存在错误,不符合PHP原生each()函数的返回值规范。

原生each()返回规则说明

PHP官方定义的each()执行成功时,返回的数组包含4个固定结构的元素:

  • 数字索引0存储当前元素的键名
  • 数字索引1存储当前元素的键值
  • 关联键key存储当前元素的键名
  • 关联键value存储当前元素的键值

问题代码的结构拆解

你提到的这段数组代码实际生成的结构如下:

[
    0 => $key,
    1 => current($array),
    2 => 'key',
    'value' => current($array)
]

存在两处明显问题:

  • 缺少关联键key的定义:原生返回中$返回值['key']应该等于当前元素的键名$key,但这段代码没有对'key'关联键赋值,导致调用方通过'key'取键名时会得到未定义索引的报错。
  • 多了无意义的数字索引2元素:原生each()返回的数组不存在数字索引2,这段代码里把字符串'key'作为数字索引2的值存入,属于额外的无效内容。

正确写法参考

符合原生规范的数组定义应该调整为:

[$key, current($array), 'key' => $key, 'value' => current($array)]

内容的提问来源于stack exchange,提问作者leanhtai01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:15:04