所以我有一个工作正常的数组,但在下面的代码中我想添加一个语句检查$ result ['price'] =!分割前为NULL。 我的数组中有一些项目的值为0.00所以我不想除以零:)
'stock_status'=> $result['stock_status'],
'saving' => round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0),
'tax' => $tax,
我尝试了以下几种组合:
'stock_status'=> $result['stock_status'],
'saving' => if (!($result['price'] == NULL)) {
round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0),
}
'tax' => $tax,
但没有成功,我做错了什么?
答案 0 :(得分:4)
您可以使用三元运算符:
[bool] ? if_true : if_false
'saving' => is_null($result['price']) ? 0 : round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0);
答案 1 :(得分:2)
在我使用的数组之外,
$saving = (! isset($result['price']))?round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0):$result['price'];
然后写下
'saving' => $saving,
答案 2 :(得分:0)
NULL表示不存在,空
您想要检查0:
'saving' => if (!($result['price'] > 0)) {
除此之外,在设置时,首先使用基本步骤创建工作脚本始终是个好主意:
$value = 0;
if (!($result['price'] > 0))
{
$value = round( 100*( ($result['price'] - $result['special']) /$result['price'] + 0.01) , 0)
}
之后你可以在数组中输入$ value。然后,您可以始终使用三元运算符开始合并。但是我从来没有理解过这个需要(但是我没有担心重载服务器负载)
答案 3 :(得分:0)
'stock_status'=> $result['stock_status'],
'saving' => if (!$result['price'] == NULL || !$result['price'] == 0) {
round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0),
}
'tax' => $tax,
答案 4 :(得分:0)
我认为你的错误可能在这里:
'saving' => if (!($result['price'] == NULL)) {
round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0),
}
在}
之后,逗号不在应有的位置
正确的片段:
'saving' => if (!($result['price'] == NULL)) {
round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0)
},
答案 5 :(得分:0)
'stock_status'=> $result['stock_status'],
'saving' => $result['price']? round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0):0,
'tax' => $tax,
如果价格为NULL或零值
,将起作用