很简单的程序逻辑有关问题.关于数组判断的
时间:2021-07-01 10:21:17
帮助过:36人阅读
很简单的程序逻辑问题.关于数组判断的.
比如$arr是一个数组.
我要判断是否为空,可以用:
if(!empty($arr)) {
或
if(count($arr) > 0) {
或
if($arr != '') {
我经常在别人的代码中看到这些,不知道他们有什么区别,为什么这么多用法.里面有学问吧?
希望大神讲讲经验.
还有就是要用foreach循环一个数组时,是不是往往要做个非空判断呢:
if(is_array($arr) && !empty($arr)) {
------解决方案--------------------
is_array($arr)
这个就好了。
空array不会报错的。
------解决方案--------------------
foreach之前不去检查数组是很危险的 会出警告错误。 一个字符串你去foreach 一个空值你去foreach 铁定的会出问题的。
至于判断的方法很多,if(!empty($arr)) {} if(count($arr) > 0) {} 没什么大区别吧。反正验证数组不为空。。。
------解决方案--------------------
用foreach循环一个数组时,最好做 is_array 判断
至于非空判断就不必要了,空数组不会进入循环
如确认 $arr 为数组则
if(!empty($arr)) {
或
if(count($arr) > 0) {
都可以,而 if($arr != '') 不严密
------解决方案--------------------
is_array() + count/empty才是王道.