最近项目中,遇到一个字段是 “是否启用”值为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"NULLFALSEarray()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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-27
  • 2021-09-02
  • 2021-12-10
  • 2022-12-23
  • 2021-07-23
  • 2021-11-03
  • 2021-11-07
相关资源
相似解决方案