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