提问人:Maurits 提问时间:12/2/2022 更新时间:3/3/2023 访问量:1729
如何解决PHP致命错误:未捕获的错误:调用未定义的函数each()?
How to solve a PHP Fatal error: Uncaught Error: Call to undefined function each()?
问:
自从迁移到 PHP 8 后,下面的代码给了我错误“PHP 致命错误:未捕获的错误:调用未定义的函数 each()...”
public function Seek($ArrangementID)
{
$this->populate();
$bFound= false;
reset($this->Arrangementen);
while (!$bFound && (list($i, $oArrangement) = each ($this->Arrangementen)))
{
$bFound= ($oArrangement->ArrangementID== $ArrangementID);
if ($bFound)
$this->Current_Elm= $i;
};
$this->EOF= !$bFound;
$this->setFieldValues();
return($bFound);
}
在其他一些针对此错误的解决方案的帖子之后,我将 while-list-each 的一部分更改为:foreach ($this->Arrangementen as $i => $oArrangement)
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;
};
$this->EOF= !$bFound;
$this->setFieldValues();
return($bFound);
}
但是,如何将 while 函数的第一部分:“!$bFound &&”合并到循环中?
while (!$bFound && (list($i, $oArrangement) = each ($this->Arrangementen)))
有什么想法吗?
答:
0赞
Salketer
12/2/2022
#1
当你找到你的元素时,你可以打破这个循环。
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; // Leave the loop!
}
};
$this->EOF= !$bFound;
$this->setFieldValues();
return($bFound);
}
评论
0赞
Maurits
12/3/2022
非常感谢Salketer。我不是专家,但是我需要将我们的网站更新到PHP8.1。我正在一堆文件中尝试这样做,每个文件都需要更新。会让你知道它是否有效。
评论