| 複製代碼/接收變數區
while (list($var, $value) = each($_REQUEST)) {
if(in_array($var,$allowvar)){
$var=trim(isset($value)?$value:"");
}
}
 PHP8.0之後each()被棄用,原本使用each都會出現以下錯誤 Error: Call to undefined function each() 解決方法就是用foreach替換each,且foreach效能比each快10倍以上,是個不錯的替換方案 
 替換方法如下說明:
 複製代碼/允許傳送變數
$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:"");
}
}
修改為foreach code
//接收變數區
foreach($_REQUEST as $var=> $value){        
if(in_array($var,$allowvar)){
 $var=trim(isset($value)?$value:""); 
} 
}
 只需要把原本each的變數替換到foreach ,其他程式都不需要更動,這樣就完成替換作業,在php8.X中也能正常運作
 
 
 我原本的CODE
 
 改成複製代碼while(list($name,$value)=each($_POST)){
  for($i=0;$i<count($array)-1;$i++){
    if(($array[$i])==$name){
      $arrayquatity[$i]=$value; 
    }
  }
        }
 就正常了複製代碼foreach($_POST as $name=> $value){
  for($i=0;$i<count($array)-1;$i++){
    if(($array[$i])==$name){
      $arrayquatity[$i]=$value;
    }
  }
}
 php8 foreach 批次接收 post 變數   
 參考文章
 https://neohsuxoops.blogspot.com/2021/11/phpforeach-neil-hsu.html
 
 |