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
相关产品推荐
相关产品推荐

