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

如何替代已废弃的each()函数?附报错及旧代码示例

替代已废弃each()函数的方案

PHP从7.2版本开始废弃each()函数,8.0版本直接移除,针对你原代码list($k, $v) = each($files);,可以根据使用场景选择以下替代方式:

1. 循环遍历数组(最常见场景)

如果你的代码是在循环中使用each()遍历数组(比如配合while循环),推荐直接改用foreach循环,这是PHP官方推荐的数组遍历方式,更直观且高效:

原代码示例:

reset($files);
while (list($k, $v) = each($files)) {
    // 处理$k(键)和$v(值)的逻辑
}

替代代码:

foreach ($files as $k => $v) {
    // 处理$k和$v的逻辑
}

foreach会自动初始化数组指针并完成遍历,无需手动调用reset(),代码更简洁。

2. 获取当前指针位置的键值对并移动指针

如果只是需要单次获取数组当前指针位置的键和值,同时将指针后移(完全复刻each()的行为),可以组合使用key()、current()和next()函数:

原代码:

list($k, $v) = each($files);

替代代码:

$k = key($files);
$v = current($files);
next($files);
  • key():返回数组当前指针位置的键
  • current():返回数组当前指针位置的值
  • next():将数组指针向后移动一位

当数组指针已处于末尾时,key()返回null,current()返回false,和each()返回false的行为一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:45:34