微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php三元运算符在输入0时失败

参见英文答案 > In php, is 0 treated as empty?                                    18个
以下代码工作正常,直到inQuantity收到零“0”.收到零后,它将其评估为空,并输入空值而不是“0”.如果输入“0.00”,则评估为非空.

$_POST['inQuantity'] = (!empty($_POST['inQuantity'])) ? $_POST['inQuantity'] : NULL;

以下代码生成相同的结果

    if (empty($_POST['inQuantity'])) {
        $state = "empty";
    } else {
        $state = "full";
    }

当inQuantity为“0”时,$state的输出为“空”

谁知道为什么会这样?

解决方法:

在这种情况下,您不应该使用empty,因为在这些情况下返回true是empty的标准行为:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

尝试使用isset():

$_POST['inQuantity'] = (isset($_POST['inQuantity'])) ? (float) $_POST['inQuantity'] : NULL;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐