我有一些足球比分(球門差異)的數據庫。如何區分「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