PHP--Warning: Invalid argument supplied for foreach() in ...


1.背景

今天學習PHPExcel的使用,在代碼執行foreach($data as $value){...}的時候出現這樣一個警告提示:Warning: Invalid argument supplied for foreach() in I:\WWW\PHPExcel\export.php on line 35;后來查詢了一下,這個警告的意思是:foreach()遍歷輸出的是一無效的數組【注意,無效數組不等於空數組】,而導致我這個錯誤的原因是,正確的代碼應該是

【getType($i)這個方法,屬於數據庫操作,我把所有的數據庫操作封裝成了方法寫在了另一個文件中,這里沒有需要對象來調用,因此沒有取到數據導致數組為空,從而導致$data這個是一個無效數組,從而引起了報錯!】

2.摘要

為了代碼在正式上線運行中頻繁報錯:

我們應該在遍歷之前對數組變量進行一個判斷:如果該變量不是一個有效數組,則設置該變量為一個空數組即array(),這樣是較好的解決辦法!【額(⊙o⊙)…但是像我這樣,馬大哈了,在測試的時候還是先把判斷注釋掉,這樣才能知道到底是哪里錯了!因為查了怎么解決這個警告提示,所以特此記錄,如果有其他更好方法或想法,歡迎指正!】

3.解決方法

【在此,我使用三元運算符簡便了判斷數組是否為有效數組】

is_array( $data = $db->getType($i)) ? null : $data=array();

這行代碼的意思:判斷$data是否為一個有效數組,如果數組有效,繼續下列操作,如果數組是無效數組,則給$data變量賦一個空數組值

【is_array():返回一個布爾值,功能是判斷傳入的變量是否是一個有效的數組!注意,空數組 $data=array() 是有一個空值的,是一個有效數組,自己可以測試一下】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM