php增加一个值

时间:2010-12-05 12:54:48

标签: php while-loop

我已设定常数,开始年份和结束年份,
所以我在

的条件下构建了一个while循环
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>";
  }
}

任何想法都会受到高度赞赏。

6 个答案:

答案 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)

将其增加两次,一次设置为值,第二次将其显示在选项标记