在数据库中,Student_id包含0值。如果有条件,我想检查它,但是没有达到要求的结果。我在if条件中尝试了以下场景:
if(is_null($item['student_id'])) {}
if($item['student_id'] === 0){}
if($item['student_id'] == 0){}
if(intval($item['student_id']) == 0){}
if(strval("$item['student_id']") == "0"){}
注意:目前Iam尝试在if条件下打印一些消息。但是在student_id = 0时,没有打印任何内容。如果student_id不是0,那么打印工作正常。
有人可以指导我做错了什么以及如何纠正。
我添加了var_dump
array
'_id' =>
object(MongoId)[2]
public '$id' => string '50906d7fa3c412bb040eb577' (length=24)
'student_id' => int 0
'type' => string 'exam' (length=4)
'score' => float 54.653543636265
array
'_id' =>
object(MongoId)[6]
public '$id' => string '50906d7fa3c412bb040eb578' (length=24)
'student_id' => int 0
'type' => string 'quiz' (length=4)
'score' => float 31.950044967421
array
'_id' =>
object(MongoId)[2]
public '$id' => string '50906d7fa3c412bb040eb579' (length=24)
'student_id' => int 0
'type' => string 'homework' (length=8)
'score' => float 14.850457681164
答案 0 :(得分:1)
尝试:
if((int) $item['student_id'] === 0){
....
}
答案 1 :(得分:1)
这应该有效,除非你的值不是真的。
if(intval($item['student_id']) == 0){}
另一种可行的方法是,你几乎拥有它:
if($item['student_id'] === '0'){}
但话又说回来,请确保你真的有一个0 ...你能为我们确定var_dump $ item吗?
答案 2 :(得分:0)
if((int)$item['student_id'] === 0){}
答案 3 :(得分:0)
要按值进行比较,首先将检索到的数据更改为整数,然后使用===
符号进行比较,以确保它们在值和类型中都是等效的:
if(intval($item['student_id']) === 0){}