我有这个简单的代码,但我不明白为什么输出是'234567'而不是'246'。
$a = 1;
while ($a < 10)
{
echo $a+1;
if ($a == 6)
{
break;
}
$a += 1;
}
输出:
234567
答案 0 :(得分:2)
因为在第4行中你打印的是($ a + 1)的结果,但你不是在变量$ a中加1。
追踪1:
$a = 1
echo 1+1; // ($a + 1) 2. PRINTS two but $a is still 1
$a = $a + 1; // now $a is equal to 2 ( 1 + 1 )
// Current output 2
追踪2:
$a = 2 // from trace 1
echo 2+1; // ($a + 1) 3. PRINTS 3 but $a is still 2
$a = $a + 1; // now $a is equal to 3 ( 2 + 1 )
// Current output 23
追踪3:
$a = 3 // from trace 2
echo 3+1; // ($a + 1) 4. PRINTS 4 but $a is still 3
$a = $a + 1; // now $a is equal to 4 ( 3 + 1 )
// Current output 234
等等。
做你想做的事:
$a = 1;
while ($a < 10)
{
echo ++$a;
if ($a == 6) break;
$a += 1;
}