看板 PHP 關於我們 聯絡資訊
一般來說當變數型態不為陣列或物件時 用foreach會發生錯誤。 所以有時會宣告一個空陣列。 不過在PHP中有個小問題 如果陣列是經由函式回傳。 而回傳的結果剛好又是空陣列或空的元件時.. return $array(空陣列||元件) 傳回的值會是 false foreach就會產生錯誤了... 有沒有人解決過這個問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.172.7
guardlan:看不太懂你的問題, 不過在使用foreach之前先檢查是否為陣 12/02 16:43
guardlan:列應該是最基本的吧? 12/02 16:43
JYHuang:函數中回傳的陣列如果為空陣列 12/02 16:46
JYHuang:程式接收到的值會是 false 而不是 array() 12/02 16:46
JYHuang:所以我用foreach前會先宣告成空陣列 12/02 16:47
Kelunyang:foreach前先檢查 === false就跳過咩 12/02 17:00
chrisQQ:foreach 前先 is_array/count > 0 ? 12/02 17:25
kalecgos0616:推樓上 12/02 17:41
JYHuang:其實這篇我想問的重點是函數return 空陣列的問題... 12/02 18:03
Jerr:return array() 怎麼會是 false 你要不要貼個code來看看 12/02 18:29
Kelunyang:聽說用isset($array[0])更快,因為是內建的語法XD 12/02 18:50
liuyyss:to樓上 $r=array("a'=>'1')時 isset($r[0])會傳回false喔 12/02 19:11
liuyyss:我是用is_array在foreach前先檢查 12/02 19:13
Kelunyang:對吼,沒想到,我是用isset來檢查string XD 12/02 21:13
JYHuang:結果是我耍笨了....囧rz 12/02 23:38
JYHuang:函式裡會先符合另一個條件,直接 return false 囧> 12/02 23:39
chrisQQ:XD 12/03 11:12