PHP公式导致致命错误/无法正常工作

时间:2018-03-20 15:52:43

标签: php

希望有人在这里可以提供帮助,因为我目前无法深入了解。所以我试图蚕食一些预先存在的代码,为我做一些简单的数学运算。基本上我想检查两个字段中是否有数据,如果是,则执行公式,然后将结果输出到字段中。

if (!empty($insurance["premium"] && $insurance['term'])) {
    $insurancep = $insurance["premium"] * ($insurance['term'] *12);
}
echo $insurancep;

我是php的新手,我无法理解为什么这会导致致命错误/无法正常工作。任何帮助将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

if (!empty($insurance["premium"] && $insurance['term'])) {
    $insurancep = $insurance["premium"] * ($insurance['term'] *12);
}

echo $insurancep;

不正确。 http://php.net/manual/en/function.empty.php - 是指向empty的链接。它应该写成这样:

if (!empty($insurance["premium"]) && !empty($insurance['term'])) {
    $insurancep = $insurance["premium"] * ($insurance['term'] *12);
}

echo $insurancep;

关于ADyson的评论

ideally it would check that the values are numeric too, since the code is going to multiply them

if (
    !empty($insurance["premium"]) && is_numeric($insurance["premium"]) 
    !empty($insurance['term'])    && is_numeric($insurance["term"])
) {
    $insurancep = $insurance["premium"] * ($insurance['term'] *12);
}

如果您传递数字和字符串,请解析var:

(int)$insurance['term']将vartype声明为整数(虽然我建议传递你打算使用的数据类型)

答案 1 :(得分:0)

你可能需要在$ insurance ['premium']之后关闭你的第一个括号。

if (!empty($insurance["premium"]) && !empty($insurance['term'])) {
    $insurancep = $insurance["premium"] * ($insurance['term'] *12);
}

使用empty函数,您无法一次测试两个变量,您必须逐个测试它们。