iT邦幫忙

0

PHP8 each()已經不能用了,請問前輩下面用到EACH()要怎麼改寫?

com 2021-12-10 14:12:431907 瀏覽
  • 分享至 

  • xImage
$jump = array();
foreach( $jump as $j ){
		echo "\n".$j->render();
	}
while( $j = each($value) ){
	if( !empty($ele_value[$id]) ){
		$new_vars = array($j['key']=>1);
	}else{
		$new_vars = array($j['key']=>0);
	}
}

PHP8 each()已經不能用了,請問前輩下面用到EACH()要怎麼改寫?

com iT邦新手 4 級 ‧ 2021-12-10 14:15:39 檢舉
我自己目前是已經寫一套function each() 解決,
function each(&$array){
$res = array();
$key = key($array);
if($key !== null){
next($array);
$res[1] = $res['value'] = $array[$key];
$res[0] = $res['key'] = $key;
}else{
$res = false;
}
return $res;
}
但是很像要使用foreach才對
淺水員 iT邦大師 6 級 ‧ 2021-12-10 15:23:58 檢舉
最簡單就加上像上面那樣自己做一個功能相同的函式就可以了
外面還可以包一層 function_exists 來偵測 each 是否已經存在
不存在才會宣告這個函式
這樣拿到舊的系統也可以用

另外單純看這篇的發問
那個 while 迴圈好像沒必要
反正都只會拿到最後一個 key => value
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2

正常的確像你那樣,用個自訂函式來用。
這樣就算換到新版了也不用太過擔心。

不過如果可以,我還是建議能從核心程式換掉寫法或許會比較好。
雖然我看不懂這段的用意要做啥就是了。

foreach 一個空陣列是???

然後whle each 只為了一個 $new_vars ???
所以想改寫也不知道怎麼去改。

我要發表回答

立即登入回答