最近项目中,遇到一个字段是 “是否启用”值为0,1 在查询时没想就写了
if ( isset($args_array[‘useFlg‘]) && !empty($args_array[‘useFlg‘]) ) { ..... }
于是查不到为0的时候,想了一下,应该是0是被认为是空.应该这样:
if ( isset($args_array[‘useFlg‘]) && in_array($args_array[‘useFlg‘] , array(0,1)) ) { ..... }
看了下php手册,备忘:
如果 var
是非空或非零的值,则 empty() 返回 FALSE
。换句话说,""、0、"0"、NULL
、FALSE
、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var
为空,则返回 TRUE
。
<?php $var = 0; // 结果为 true,因为 $var 为空 if (empty($var)) { echo ‘$var is either 0 or not set at all‘; } // 结果为 false,因为 $var 已设置 if (!isset($var)) { echo ‘$var is not set at all‘; } ?>
The following things are considered to be empty: "" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) var $var; (a variable declared, but without a value in a class)
手册参见:http://php.net/manual/zh/function.empty.php
时间: 2024-11-08 22:08:28