TShopping

 找回密碼
 註冊
搜索
查看: 75|回復: 0

[教學] php8.X 使用foreach批次大量接收 post 變數的方法

[複製鏈接]
發表於 2024-12-30 16:46:58 | 顯示全部樓層 |閱讀模式
 
Push to Facebook
  1. /接收變數區
  2. while (list($var, $value) = each($_REQUEST)) {
  3. if(in_array($var,$allowvar)){
  4. $var=trim(isset($value)?$value:"");
  5. }
  6. }
複製代碼

PHP8.0之後each()被棄用,原本使用each都會出現以下錯誤
Error: Call to undefined function each()
解決方法就是用foreach替換each,且foreach效能比each快10倍以上,是個不錯的替換方案

替換方法如下說明:
  1. /允許傳送變數
  2. $allowvar =array("of_sortid","centerid","enable","arrange","search","type","useruid","post");

  3. 原本的each code
  4. //接收變數區
  5. while (list($var, $value) = each($_REQUEST)) {
  6. if(in_array($var,$allowvar)){
  7. $var=trim(isset($value)?$value:"");
  8. }
  9. }

  10. 修改為foreach code
  11. //接收變數區
  12. foreach($_REQUEST as $var=> $value){       
  13. if(in_array($var,$allowvar)){
  14. $var=trim(isset($value)?$value:"");
  15. }
  16. }
複製代碼


只需要把原本each的變數替換到foreach ,其他程式都不需要更動,這樣就完成替換作業,在php8.X中也能正常運作


我原本的CODE
  1. while(list($name,$value)=each($_POST)){
  2.   for($i=0;$i<count($array)-1;$i++){
  3.     if(($array[$i])==$name){
  4.       $arrayquatity[$i]=$value;
  5.     }
  6.   }
  7.         }
複製代碼
改成
  1. foreach($_POST as $name=> $value){
  2.   for($i=0;$i<count($array)-1;$i++){
  3.     if(($array[$i])==$name){
  4.       $arrayquatity[$i]=$value;
  5.     }
  6.   }
  7. }
複製代碼
就正常了

php8 foreach 批次接收 post 變數

php8 foreach 批次接收 post 變數


參考文章
https://neohsuxoops.blogspot.com/2021/11/phpforeach-neil-hsu.html

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2025-1-24 22:08 , Processed in 0.070812 second(s), 26 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表