-1

在数据库中,Student_id 包含 0 值。我想在 if 条件下检查它,但没有达到所需的结果。我在 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"){}

注意:目前我正在尝试在 if 条件下打印一些消息。但是在 student_id = 0 上,没有打印任何内容。如果 student_id 不是 0,则 print 工作正常。

有人可以指导我做错了什么以及如何纠正它。

我添加了 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
4

4 回答 4

1

尝试:

if((int) $item['student_id'] === 0){
....
}
于 2012-11-06T14:20:24.410 回答
1

除非您的值不是真正的 0,否则这应该有效。

if(intval($item['student_id']) == 0){}

另一种可行的方法是,您几乎拥有它:

if($item['student_id'] === '0'){}

但话又说回来,确保你真的有一个 0 在那里......你能 var_dump $item 让我们确定一下吗?

于 2012-11-06T14:20:44.367 回答
0
if((int)$item['student_id'] === 0){}
于 2012-11-06T14:20:56.200 回答
0

要按值比较零,首先将检索到的数据更改为整数,然后使用===符号进行比较以确保它们在值和类型上是等效的:

if(intval($item['student_id']) === 0){}
于 2012-11-06T14:25:39.000 回答