作者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