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

PHP 8中each()函数未定义错误解决及循环终止条件适配问题

解决PHP 8中foreach替代each()后的循环终止问题

原代码中while循环的!$bFound &&条件作用是:找到匹配的ArrangementID后立即停止遍历数组,避免无效的后续循环。要在foreach中实现相同逻辑,只需要在确认找到匹配项后,用break语句跳出循环即可。

修改后的完整代码:

public function Seek($ArrangementID)
{
    $this->populate();
    $bFound = false;
    reset($this->Arrangementen);
    foreach ($this->Arrangementen as $i => $oArrangement)
    {
        $bFound = ($oArrangement->ArrangementID == $ArrangementID);
        if ($bFound) {
            $this->Current_Elm = $i;
            break; // 找到匹配项后立即终止循环
        }
    };
    $this->EOF = !$bFound;
    $this->setFieldValues();
    return $bFound;
}

逻辑说明:

  • 当$bFound被设为true(找到目标ID)时,执行break语句直接跳出foreach循环,不再遍历数组剩余元素,完全还原原while循环的终止逻辑。
  • 给if ($bFound)添加大括号,符合PHP代码规范,避免后续扩展代码时出现语法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:51:15