Symfony2:如果boolean为假,则if ($boolean == null)为真


Symfony2: if ($boolean == null) is true if boolean is false

我有一个问卷是/否单选按钮,我保存到我的数据库作为布尔值。由于特定的原因,表单没有验证,并且所有字段都可为空,因此可以先填写一半表单,然后再填写一半表单。在代码的某一点上,我必须检查表单是否已完全填写。

我的问题是,如果单选按钮被设置为NO(即:FALSE)。在数据库中为0而不是null),那么if ($boolean == null)的计算结果仍然为true。当布尔值为false时,print ">>$boolean<<";的结果是>><<,而var_dump($boolean);的结果是bool(false)。我如何确定,在Symfony2中,如果布尔值没有被填充(数据库中的NULL),而不是标记为false(数据库中的0)?

根据PHP比较表(http://us3.php.net/manual/en/types.comparisons.php), false == NULL。在这种情况下,您需要使用===操作符来进行严格的比较,因此请尝试使用if($boolean === null)