我写了一个包含许多条件的简单脚本:
$item =12;
if($item < 5)
{
//display icon buyer
}
elseif ($item < 10)
{
//display icon buyer
}
elseif ($item < 15)
{
//display icon good buyer
}
elseif ($item < 20)
{
//display icon top buyer
}
// etc....
这是一个漫长的多重条件,我知道非常糟糕。
我如何优化代码?
注意。 switch
是不可能的,因为我正在使用运算符<
和>
等。
答案 0 :(得分:10)
比一堆条件更好的是寻找一种允许计算它的模式。
在你的情况下,它看起来像是5步 - 所以适合分裂。
或映射它:
$item = 12;
$icons = [
10 => 'buyer',
15 => 'good buyer',
20 => 'top buyer',
];
foreach ($icons as $value => $icon) {
if ($item < $value) {
return $icon;
}
}
return null;
这允许更灵活的步骤(正如您在相关数据中所拥有的那样)。
答案 1 :(得分:9)
给它一个(demo):
<?php
function icon($item) {
$icons = array(
'buyer',
'buyer',
'good buyer',
'top buyer'
);
$index = max(0, min(3, $item / 5));
return $icons[$index];
}
$item = 12;
echo icon($item) . "\n";
$item = 1;
echo icon($item) . "\n";
$item = 100;
echo icon($item) . "\n";
只需添加到$icons
数组即可获得更多选项/图标。