- /接收變數區
- 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
|