正确的方法在数组中汇编If语句

时间:2013-10-16 11:55:19

标签: php if-statement

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

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

6 个答案:

答案 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或零值

,将起作用