之前寫過一篇【php使用each批次大量接收變數】的工作心得,但PHP8.0之後each()被棄用,原本使用each都會出現以下錯誤
Error: Call to undefined function each()
解決方法就是用foreach替換each,且foreach效能比each快10倍以上,是個不錯的替換方案替換方法如下說明:
教學撰寫:徐嘉裕 Neil hsu
//允許傳送變數
$allowvar =array("of_sortid","centerid","enable","arrange","search","type","useruid","post");
$allowvar =array("of_sortid","centerid","enable","arrange","search","type","useruid","post");
原本的each code
//接收變數區
while (list($var, $value) = each($_REQUEST)) {
if(in_array($var,$allowvar)){
$$var=trim(isset($value)?$value:"");
}
}
while (list($var, $value) = each($_REQUEST)) {
if(in_array($var,$allowvar)){
$$var=trim(isset($value)?$value:"");
}
}
修改為foreach code
//接收變數區
foreach($_REQUEST as $var=> $value){
if(in_array($var,$allowvar)){
$$var=trim(isset($value)?$value:"");
}
}
只需要吧原本each紅字跟藍字的變數替換到foreach 紅字跟藍字,其他程式都不需要更動,這樣就完成替換作業,在php8.0中也能正常運作,有需要的朋友參考看看。
留言
張貼留言