我正在尝试使用if或case语句来获取某个值,以便在我的数据库中导入。 目前的代码是:
'price' => ((float)$this->data['nett-price'] + 1.30),
nett-price是使用文件导入的,而1.30是所有项目所需的静态值。
现在我希望在满足条件时增加一定的价格:
if (in_array($this->data['diameter'], array(
10,
11,
12,
13,
14,
15)))
return '2.20';
if (in_array($this->data['diameter'], array(16, 17)))
return '4.40';
return '2.20';
}
那么它也应该检查:
if (in_array($this->data['width'], array(
150,
155,
160,
165)))
return '2.20';
if (in_array($this->data['diameter'], array(255, 260)))
return '4.40';
return '2.20';
}
所以简而言之,我想要检查第一个代码是否符合第一个条件,然后检查它是否满足第二个条件。然后它应该为不同的条件添加(仅一次)一个值....
希望我作为初学者解释得很好。
答案 0 :(得分:0)
如果我理解正确,你只需要在条件之间使用AND &&
并安排它们,因为如果第一个条件不正确,and
将不会评估第二个条件,在其他条件下词:
if( condition1 && condition2) {
perform requested operation
}
加上一个注释,你的例子在第一个条件中返回2.20并作为默认值,但同时4.40是唯一的条件值,所以我们可以通过测试4.40值来使代码更好:
$addedValue = 0;
if (in_array($this->data['diameter'], array(16, 17)) || in_array($this->data['width'], array(255, 260)))
$addedValue = 4.40;
else $addedValue = 2.20;
现在你可以'price' => ((float)$this->data['nett-price'] + 1.30 + $addedValue)