我有一些足球比分(球门差异)的数据库。如何区分“0”和null?
p12_score1包含3,-2,0和NULL
所有我想要做的是打印所有得分差异(包括0),而忽略不具有任何值(NULL在MySQL)的行。然而,is_null也认为值0为空并且不打印它。
IF(!$p12_score1==NULL){
$equal[] = $p12_score1;
}
else {
echo "null";
}
print_r ($equal);
我有一些足球比分(球门差异)的数据库。如何区分“0”和null?
p12_score1包含3,-2,0和NULL
所有我想要做的是打印所有得分差异(包括0),而忽略不具有任何值(NULL在MySQL)的行。然而,is_null也认为值0为空并且不打印它。
IF(!$p12_score1==NULL){
$equal[] = $p12_score1;
}
else {
echo "null";
}
print_r ($equal);
is_null
不不考虑0
等于null
值。
您的代码使用==
进行比较,但没有进行区分。使用identical operator===
或is_null
代替:
// One way to do it:
if(!$p12_score1 !== NULL)
// Another:
if(!is_null($p12_score1))
然而is_null也认为值0空,不会打印出来。
但是,您使用comparisong操作
$p12_score1==NULL
在这种情况下:在松散类型languaged null
等于0
(和其他一些;))。然而,PHP支持身份comparisong
$p12_score1===NULL
阿里纳斯:!$a == $b
稍微难看。使用实际“不等于”!=
或!==
。
试试这个:
IF(!empty($p12_score1)){
$equal[] = $p12_score1;
}
else {
echo "null";
}
print_r ($equal);
尝试
if($p12_score1 !== null) {
$equal[] = $p12_score1;
} else {
echo "null";
}
print_r ($equal);
如果你想这样做,在PHP的不是SQL你有你的代码改成这样:
IF (!$p12_score1 === NULL)
这你检查的方式是$p12_score1
是正好是 null。
功能is_null
应该工作。另一种选择是is_int
。我试了两个,都正常工作。
use'if(!$ p12_score1 === null)'see:http://php.net/manual/en/language.operators.comparison.php – dbrumann