重构2个类似的if语句

时间:2011-05-20 00:24:03

标签: php refactoring

您会以不同的方式编写此代码吗?我不介意三元运算符,所以任何包含它的想法也欢迎

if ($stopYear < $startYear) {
   for ($i = $startYear; $i >= $stopYear; $i--) {
     $yearMultiOptions[$i] = $i;
   }
} else {
   for ($i = $startYear; $i <= $stopYear; $i++) {
     $yearMultiOptions[$i] = $i;
   }
}

2 个答案:

答案 0 :(得分:4)

$min = min($startYear, $stopYear);
$max = max($startYear, $stopYear);

for ($i = $min; $i <= $max; $i++) {
    $yearMultiOptions[$i] = $i;
}

我不知道php,所以minmax可能有不同的语法,但你明白了。

答案 1 :(得分:0)

你可以这样做:

$step = ($stopYear < $startYear) ? -1 : 1;
for ($i = $startYear; $i != $stopYear; $i += step) {
    $yearMultiOptions[$i] = $i;
}