我正在修復一些在 PHP 7.2.0 上觸發警告的舊代碼,因為each()已棄用。
我嘗試each()用foreach()以下內容替換,但它不起作用。return我在 StackOverflow 上找到了一些答案,但沒有像我試圖修復的舊代碼那樣直接純。
需要更新的舊代碼(運行良好,但會觸發警告):
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);
}
}
任何幫助表示贊賞,謝謝:)
uj5u.com熱心網友回復:
似乎 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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480738.html
