更新弃用的代码,从 each() 到 foreach()
Updating deprecated code, from each() to foreach()
我正在努力修复一些在 PHP 7.2.0 上触发警告的旧代码,因为 each()
已被弃用。
我尝试将 each()
替换为 foreach()
,如下所示,但它不起作用。
我在 Whosebug 上找到了一些答案,但是 none 与我正在尝试修复的旧代码中的纯 return
一样。
需要更新的旧代码(运行良好,但触发警告):
if ($n > 0){
if ($n !== count($array)){
return (bool) each($array);
}
}
我试过(但没有用):
if ($n > 0){
if ($n !== count($array)){
foreach($array as $key => $value) {
return (bool) $value;
}
unset($value);
}
}
感谢任何帮助,谢谢:)
php 团队似乎鼓励您自己管理数组指针。您可以用 ArrayIterator 包装器替换原始数组。
$arrayItor = new ArrayIterator($array);
然后可以使用此迭代器更新您的代码。
if ($n > 0){
if ($n !== $arrayItor->count()){
$ret = $arrayItor->current();
$arrayItor->next();
return (bool)$ret;
}
}
另一种方法是 current
和 next
尚未弃用,因此您可以使用它们来替换 each
函数
if ($n > 0){
if ($n !== count($array)){
$ret = current($array);
next($array);
return (bool)$ret;
}
}
我正在努力修复一些在 PHP 7.2.0 上触发警告的旧代码,因为 each()
已被弃用。
我尝试将 each()
替换为 foreach()
,如下所示,但它不起作用。
我在 Whosebug 上找到了一些答案,但是 none 与我正在尝试修复的旧代码中的纯 return
一样。
需要更新的旧代码(运行良好,但触发警告):
if ($n > 0){
if ($n !== count($array)){
return (bool) each($array);
}
}
我试过(但没有用):
if ($n > 0){
if ($n !== count($array)){
foreach($array as $key => $value) {
return (bool) $value;
}
unset($value);
}
}
感谢任何帮助,谢谢:)
php 团队似乎鼓励您自己管理数组指针。您可以用 ArrayIterator 包装器替换原始数组。
$arrayItor = new ArrayIterator($array);
然后可以使用此迭代器更新您的代码。
if ($n > 0){
if ($n !== $arrayItor->count()){
$ret = $arrayItor->current();
$arrayItor->next();
return (bool)$ret;
}
}
另一种方法是 current
和 next
尚未弃用,因此您可以使用它们来替换 each
函数
if ($n > 0){
if ($n !== count($array)){
$ret = current($array);
next($array);
return (bool)$ret;
}
}