[請益] 回傳空陣列(元件) & foreach

看板PHP作者 (夏天到了,冷不起來了說)時間15年前 (2010/12/02 16:34), 編輯推噓4(4013)
留言17則, 7人參與, 最新討論串1/1
一般來說當變數型態不為陣列或物件時 用foreach會發生錯誤。 所以有時會宣告一個空陣列。 不過在PHP中有個小問題 如果陣列是經由函式回傳。 而回傳的結果剛好又是空陣列或空的元件時.. return $array(空陣列||元件) 傳回的值會是 false foreach就會產生錯誤了... 有沒有人解決過這個問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.172.7

12/02 16:43, , 1F
看不太懂你的問題, 不過在使用foreach之前先檢查是否為陣
12/02 16:43, 1F

12/02 16:43, , 2F
列應該是最基本的吧?
12/02 16:43, 2F

12/02 16:46, , 3F
函數中回傳的陣列如果為空陣列
12/02 16:46, 3F

12/02 16:46, , 4F
程式接收到的值會是 false 而不是 array()
12/02 16:46, 4F

12/02 16:47, , 5F
所以我用foreach前會先宣告成空陣列
12/02 16:47, 5F

12/02 17:00, , 6F
foreach前先檢查 === false就跳過咩
12/02 17:00, 6F

12/02 17:25, , 7F
foreach 前先 is_array/count > 0 ?
12/02 17:25, 7F

12/02 17:41, , 8F
推樓上
12/02 17:41, 8F

12/02 18:03, , 9F
其實這篇我想問的重點是函數return 空陣列的問題...
12/02 18:03, 9F

12/02 18:29, , 10F
return array() 怎麼會是 false 你要不要貼個code來看看
12/02 18:29, 10F

12/02 18:50, , 11F
聽說用isset($array[0])更快,因為是內建的語法XD
12/02 18:50, 11F

12/02 19:11, , 12F
to樓上 $r=array("a'=>'1')時 isset($r[0])會傳回false喔
12/02 19:11, 12F

12/02 19:13, , 13F
我是用is_array在foreach前先檢查
12/02 19:13, 13F

12/02 21:13, , 14F
對吼,沒想到,我是用isset來檢查string XD
12/02 21:13, 14F

12/02 23:38, , 15F
結果是我耍笨了....囧rz
12/02 23:38, 15F

12/02 23:39, , 16F
函式裡會先符合另一個條件,直接 return false 囧>
12/02 23:39, 16F

12/03 11:12, , 17F
XD
12/03 11:12, 17F
文章代碼(AID): #1Czre5CD (PHP)
文章代碼(AID): #1Czre5CD (PHP)