我已设定常数,开始年份和结束年份,
所以我在
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>";
}
}
任何想法都会受到高度赞赏。
答案 0 :(得分:5)
您要将值递增两次:
echo "<option value=\"".$yearBegin++."\">".$yearBegin++."</option>";
每个$yearBegin++
将其递增一个。
改为使用for循环:
for ($yearBegin = START_YEAR; $yearBegin < CURRENT_YEAR; $yearBegin++)
{
echo "<option value=\"".$yearBegin."\">".$yearBegin."</option>";
}
答案 1 :(得分:4)
使用for循环通常是这样做的方法,
for($year=START_YEAR;$year<=CURRENT_YEAR;$year++)
{
//User the $year here
}
你的代码问题是你在while循环中调用$yearBegin++
2次,导致它增加两次。
使用for循环比使用表达式中的递增更加清晰
答案 2 :(得分:3)
function yearCount()
{
$yearBegin = START_YEAR;
$yearCurrent = CURRENT_YEAR;
while($yearBegin < $yearCurrent){
$this_year = $yearBegin++;
echo "<option value=\"".$this_year."\">".$this_year."</option>";
}
}
答案 3 :(得分:1)
只使用一次++
,增量
echo "<option value=\"".$yearBegin."\">".$yearBegin++."</option>";
答案 4 :(得分:0)
你增加$ yearBegin两次,在值部分增加一次,在显示部分增加一次......
您需要更改它,以便它只增加一次
答案 5 :(得分:0)
将其增加两次,一次设置为值,第二次将其显示在选项标记
中