PHP填充字段即使填充也会返回0

时间:2018-06-18 06:57:07

标签: php

我有一个MySQL行,我通过这样做获取数据:

...['immobile' => $dati_immobile->row(),]...

然后我有一个表,我传递一个函数内的每个字段,这是函数代码:

public function brochurefield($field, $label, $checkbox = false)
{
    if($field == 0){
        return '<tr><td>'.$label.' Is zero</td></tr>';
    }
}

当我使用从MySQL获取的文本字段回显此函数时,它返回0:

//This returns "Accessori Bagno Is zero"
<?= $this->ui_model->brochurefield($immobile->arredo_bagno, "Accessori Bagno") ?>

//This returns "termo arredo" (text from DB)
<tr><td><?= $immobile->arredo_bagno ?></td></tr>

它基本上将字段读为0而不是“termo arredo”。 如果我检查$field == "0"(字符串)和$field == ''(空字符串)上的字段,结果为false。

只有当我根据0(int)值检查它时,结果才为真。

问题仅发生在字符串值上,而在int值上我得到预期结果(brochurefield(32,"test")正确返回数字32)。

我使用PHP 7.1.1

1 个答案:

答案 0 :(得分:1)

您必须使用if条件,例如。

  

该值由字符串的初始部分给出。如果是字符串   从有效的数字数据开始,这将是使用的值。   否则,该值将为0(零)。有效的数字数据是   可选符号,后跟一个或多个数字(可选地包含一个   小数点),后跟可选的指数。指数是一个   &#39; E&#39;或者&#39; E&#39;后跟一个或多个数字。

这意味着:

("test" == 0) === true
("1test" == 0) === false


if ($field == "" || $field == "0" || (is_numeric($field) && $field == 0)) {

如需更多参考,请访问PHP manual