Kat*_*ate 5 php switch-statement
我写了一个包含许多条件的简单脚本:
$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....
Run Code Online (Sandbox Code Playgroud)
这是一个漫长的多重条件,我知道非常糟糕.
我如何优化代码?
注意. switch是不可能的,因为我使用的是运营商<和 >等
hak*_*kre 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;
Run Code Online (Sandbox Code Playgroud)
这允许更灵活的步骤(正如您在相关数据中所拥有的那样).
给它一个去(演示):
<?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";
Run Code Online (Sandbox Code Playgroud)
只需添加到$icons阵列即可获得更多选项/图标.