希望有人在这里可以提供帮助,因为我目前无法深入了解。所以我试图蚕食一些预先存在的代码,为我做一些简单的数学运算。基本上我想检查两个字段中是否有数据,如果是,则执行公式,然后将结果输出到字段中。
if (!empty($insurance["premium"] && $insurance['term'])) {
$insurancep = $insurance["premium"] * ($insurance['term'] *12);
}
echo $insurancep;
我是php的新手,我无法理解为什么这会导致致命错误/无法正常工作。任何帮助将不胜感激。
谢谢!
答案 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
函数,您无法一次测试两个变量,您必须逐个测试它们。