1

所以我有一个工作正常的数组,但是在下面的代码中我想添加一个语句检查 $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,

但是没有成功,我做错了什么?

4

6 回答 6

4

您可以使用三元运算符:

[bool] ? if_true : if_false

'saving' => is_null($result['price']) ? 0 : round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0);
于 2013-10-16T11:58:39.237 回答
2

在我使用的数组之外,

$saving = (! isset($result['price']))?round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0):$result['price'];

然后就写

'saving'      => $saving,
于 2013-10-16T12:14:46.443 回答
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 输入到数组中。然后,您始终可以使用三元运算符开始合并事物。但我从来不明白需要这样做(但我不用担心繁重的服务器负载)

于 2013-10-16T11:57:34.113 回答
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,
于 2013-10-16T12:00:00.437 回答
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)
},
于 2013-10-16T12:02:18.330 回答
0
'stock_status'=> $result['stock_status'],
'saving'      => $result['price']? round((($result['price'] - $result['special'])/$result['price'] + 0.01)*100, 0):0,
'tax'         => $tax,

如果价格为 NULL 或零值,将起作用

于 2013-10-16T12:03:25.307 回答