首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php中,0是否被视为空?

在php中,0是否被视为空?
EN

Stack Overflow用户
提问于 2010-02-08 17:16:10
回答 13查看 181K关注 0票数 169

代码将解释更多:

$var = 0;

if (!empty($var)){
echo "Its not empty";
} else {
echo "Its empty";
}

结果返回"Its“。我认为empty()将检查我是否已经设置了变量并在其中设置了值。为什么它返回"Its empty"??

EN

回答 13

Stack Overflow用户

发布于 2010-02-08 17:30:16

我想知道为什么没有人推荐极方便的Type comparison table。它回答了关于公共函数和比较运算符的所有问题。

一个片段:

Expression      | empty($x)
----------------+--------
$x = "";        | true    
$x = null       | true    
var $x;         | true    
$x is undefined | true    
$x = array();   | true    
$x = false;     | true    
$x = true;      | false   
$x = 1;         | false   
$x = 42;        | false   
$x = 0;         | true    
$x = -1;        | false   
$x = "1";       | false   
$x = "0";       | true    
$x = "-1";      | false   
$x = "php";     | false   
$x = "true";    | false   
$x = "false";   | false   

和其他小抄一样,我总是在办公桌上放一份这张桌子的硬拷贝,以防我不确定

票数 86
EN

Stack Overflow用户

发布于 2013-05-29 15:22:54

对于数值,您应该使用is_numeric函数:

$var = 0;

if (is_numeric($var))
{
  echo "Its not empty";
} 
else 
{
    echo "Its empty";
}
票数 44
EN

Stack Overflow用户

发布于 2015-11-10 20:21:13

我最近在这件事上也被抓到了。我们经常处理的问题是未设置的变量--比如一个表单元素,可能存在也可能不存在,但对于许多元素来说,0 (或字符串'0',它会通过post更准确,但仍然会被计算为"falsey")在下拉列表中是一个合法的值。

如果您也需要这样做,那么首先使用empty(),然后使用strlen()是最好的选择,因为:

if(!empty($var) && strlen($var)){
    echo '"$var" is present and has a non-falsey value!';
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2220519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档