如何区分一个值在PHP中为零或零



我有一个变量,例如 $moon

在某些情况下其值为

$moon=0;

在其他情况下,其价值为

$moon=NULL;

现在,如果子句我如何区分这些值?

我的代码是

if($moon==0 && !empty($moon)){
    echo "its zero";        
}else{
    echo "its null";
}

它总是显示"零"

我也尝试了

if($moon==0 && $moon!=NULL){
    echo "its zero";        
}else{
    echo "its null";
}

检查未使用:

if (is_null($moon))

检查整数0使用:

if ($moon === 0)

检查整数0或字符串" 0"

if ($moon == '0')

我必须添加,当使用" =="时,PHP将考虑与数字0等于0的字符串:

$moon = "asd";
if ($moon == 0) // will be true

您可能需要使用三个相等的三个,以查看给定值是否相同

$moon = 0;
if($moon === 0) {
    echo 'its zero';
} else {
    echo 'is null';
}

您可以查看有关比较操作员的更多信息在此处

您可以使用以下解决方案(使用is_null===):

if (is_null($moon)) {
    echo "its null";
} elseif ($moon === 0) {
   echo "its zero"; 
} elseif ($moon == 0) {
   echo "its zero (string)";
} else {
   echo "another value";
}

您可以使用函数is_null

使用is_null说明:

$val1 = NULL;
$val2 = 0;
var_dump(is_null($val1)); //true
var_dump(is_null($val2)); //false

使用===说明:

$val1 = NULL;
$val2 = 0;
var_dump($val1 === 0); //false
var_dump($val2 === 0); //true

演示: https://ideone.com/tppqqi

使用PHP的语言构造isset()将报告true,以便您知道该值不是null。您也可以使用is_null(),但是isset()倾向于报告更快。

if (isset($var)) {
    echo 'It is something.';
} else {
    echo 'It is nothing.';
}

if (!is_null($var)) {
    echo 'It is something.';
} else {
    echo 'It is nothing.';
}

if ($var !== null)) {
    echo 'It is something.';
} else {
    echo 'It is nothing.';
}

如前所述,您可以使用is_null()函数。

您可以在if()语句中与!操作员一起使用此功能,如下:

if( $moon==0 && !is_null($moon) ){
    echo "its zero";        
}else{
    echo "its null";
}

相关内容

  • 没有找到相关文章

最新更新