2010-12-05 97 views
1

我已經設置爲常數,開始年和結束的一年,
所以我必須建立在條件while循環PHP增加值

if the start year is < than the current year increment until true. 

我的問題是,與其它往上走是這樣的:

1999,2000,2001,2002,2003,2004 

它是這樣:

1999,2001,2003,2005,2007,2009 

這裏是我的代碼:

function yearCount() 
{ 
    $yearBegin = START_YEAR; 
    $yearCurrent = CURRENT_YEAR; 
    while($yearBegin < $yearCurrent){ 
    echo "<option value=\"".$yearBegin++."\">".$yearBegin++."</option>"; 
    } 
} 

任何想法將不勝感激。

+1

請顯示您的代碼。 – RobertPitt 2010-12-05 12:56:28

回答

5

你兩倍的值遞增。

使用for循環,而不是:

for ($yearBegin = START_YEAR; $yearBegin < CURRENT_YEAR; $yearBegin++) 
{ 
    echo "<option value=\"".$yearBegin."\">".$yearBegin."</option>"; 
} 
0

你增加$ yearBegin兩次,一次在值部分,在顯示部分一次......

你需要改變它,所以它只有一次

3
function yearCount() 
{ 
    $yearBegin = START_YEAR; 
    $yearCurrent = CURRENT_YEAR; 
    while($yearBegin < $yearCurrent){ 
    $this_year = $yearBegin++; 
    echo "<option value=\"".$this_year."\">".$this_year."</option>"; 
    } 
} 
0

你增加它增加兩次,一次將其設置爲一個值,並且所述第二時間在選項標籤

1

僅使用一個時間++顯示它,遞增

echo "<option value=\"".$yearBegin."\">".$yearBegin++."</option>"; 
012通過一個

echo "<option value=\"".$yearBegin++."\">".$yearBegin++."</option>"; 

每個$yearBegin++遞增它:

4

使用for循環通常是這樣做的方式,

for($year=START_YEAR;$year<=CURRENT_YEAR;$year++) 
{ 
    //User the $year here 
} 

你的代碼的問題是,您的通話中$yearBegin++ 2倍while循環,導致它增加兩次。

使用for循環更清晰,然後在表達式中爲您遞增