1 2 3 4 5 6 7 8
| if($order_type==1){ $whereCondition = (!empty($order_id))&&(!empty($goodsid))&&(!empty($order_type))&&(!empty($level)); }else{ $whereCondition = (!empty($order_id))&&(!empty($goodsid))&&(!empty($order_type)); } if($whereCondition){ .... }
|
今天反了一个很低级的错误,如上述代码所写,第一个if是确定判断条件,判断条件必须都不空才行,而其中的一个参数order_type
是0
,但是empty()
是可以判断参数0或NULL返回true。这样虽然参数已经传了0,但是!empty()
也会返回一个false,这样不管怎么样 if($whereCondition)
都会是false。这时应该用isset()
。
1 2 3
| isset(var) //判断参数是不是null,是null就返回false
如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE
|
1 2 3 4 5 6 7 8 9 10 11 12
| empty(var) //也是判断参数是不是null,是null就返回true
以下的东西被认为是空的: • "" (空字符串) • 0 (作为整数的0) • 0.0 (作为浮点数的0) • "0" (作为字符串的0) • NULL • FALSE • array() (一个空数组) • $var; (一个声明了,但是没有值的变量)
|