PHP不区分NULL值(空值)和0值(数值)

时间:2014-03-29 15:05:33

标签: php sql null conditional

如果名为ro_capacity的字段为NULL(如果查询中的值返回为空),则我有一个PHP条件负责将$ hideZeroValues设置为FALSE。

if ($result_ro['ro_capacity'] == "") {
    $hideZeroValues="true";
}  
else{
    $hideZeroValues="false";
}

$result_ro['ro_capacity']产生的值作为父DIV上数据容量的值存储,而$hideZeroValues条件产生的TRUE或FALSE存储在子行的data-zeroValues上。

因此,如果此条件可以正常工作,则可能没有同时拥有data-capacity=0data-zerovalues="true"的选项,因为0是值,不是空值,不是NULL。但正如你在这两个div中看到的那样,它会发生:第一个是OK(data-capacity=""data-zeroValues="true"),但是在第二个div上,即使查询返回值(0),它也会保持设置为TRUE 。

<div id="92" class="tableRow" title="Aula prueba" data-id="92" data-capacity="">
<span class="tableContentText centerText" data-zerovalues="true">-</span>
</div>

<div id="91" class="tableRow" title="Aula prueba" data-id="91" data-capacity="0">
<span class="tableContentText centerText" data-zerovalues="true">-</span>
</div>

第三个,值为12,工作正常(问题只发生在0和NULL,而不是任何其他数值:

<div id="93" class="tableRow" title="Aula prueba" data-id="91" data-capacity="12">
<span class="tableContentText centerText" data-zerovalues="false">-</span>
</div>

我也试过了:

if ($result_ro['ro_capacity'] === "") { $hideZeroValues="true"; }  

if (is_null($result_ro['ro_capacity']) {    $hideZeroValues="true"; } 

1 个答案:

答案 0 :(得分:0)

这是因为PHP在PHP中被评估为false。

尝试这种方法:

if(empty($result_ro['ro_capacity']) && $result_ro['ro_capacity'] !== 0)