1.背景php
今天學習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⊙)…可是像我這樣,馬大哈了,在測試的時候仍是先把判斷註釋掉,這樣才能知道究竟是哪裏錯了!由於查了怎麼解決這個警告提示,因此特此記錄,若是有其餘更好方法或想法,歡迎指正!】spa
3.解決方法
對象
【在此,我使用三元運算符簡便了判斷數組是否爲有效數組】get
is_array( $data = $db->getType($i)) ? null : $data=array();變量
這行代碼的意思:判斷$data是否爲一個有效數組,若是數組有效,繼續下列操做,若是數組是無效數組,則給$data變量賦一個空數組值foreach
【is_array():返回一個布爾值,功能是判斷傳入的變量是不是一個有效的數組!注意,空數組 $data=array() 是有一個空值的,是一個有效數組,本身能夠測試一下】