2011-05-20 52 views
1

你會不同地寫這段代碼嗎?我不介意三級運營商的方式,使包括它也是任何想法表示歡迎重構2個類似的if語句

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

回答

0

你可以做這樣的事情:

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

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

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

+0

你的回答是正確的。 ['min()'](http://php.net/manual/en/function.min.php)和['max()'](http://php.net/manual/en/function.max .php)的語法與你使用的完全一致。 – Tadeck 2011-05-20 00:35:47