我有一个变量,例如 $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";
}