我有一个包含一些足球比分(目标差异)的数据库。
p12_score1 包含3,-2,0和NULL
我想要做的就是打印所有得分差异(包括0)并忽略没有值的行(mysql中为NULL)。但是is_null也将值0视为null并且不会打印它。
IF(!$p12_score1==NULL){
$equal[] = $p12_score1;
}
else {
echo "null";
}
print_r ($equal);
答案 0 :(得分:3)
is_null
不认为值0
等于null
。
您的代码使用==
进行比较,但没有区分。请改用identical operator ===
或is_null
:
// One way to do it:
if(!$p12_score1 !== NULL)
// Another:
if(!is_null($p12_score1))
答案 1 :(得分:1)
然而,is_null也将值0视为null并且不会打印它。
没有。 http://codepad.org/mjiGfhTB
但是,您使用比较运算符
$p12_score1==NULL
并且在这种情况下:松散类型的语言null
等于0
(以及其他一些;))。但是,PHP支持身份比较
$p12_score1===NULL
旁注:!$a == $b
略显难看。使用真实“不等于”!=
或!==
。
答案 2 :(得分:0)
试试这个:
IF(!empty($p12_score1)){
$equal[] = $p12_score1;
}
else {
echo "null";
}
print_r ($equal);
答案 3 :(得分:0)
尝试
if($p12_score1 !== null) {
$equal[] = $p12_score1;
} else {
echo "null";
}
print_r ($equal);
答案 4 :(得分:0)
如果您想在PHP而不是sql中执行此操作,则必须将代码更改为:
IF (!$p12_score1 === NULL)
通过这种方式,您可以检查$p12_score1
是否完全为空。
答案 5 :(得分:0)
函数is_null
应该有效。另一个选项是is_int
。我试过两个都正常工作。