为什么这个循环只执行一次?

时间:2017-01-25 23:38:05

标签: php loops

我找到了这样的php代码:

$a = 5;
$i  = 4;
for($i = &$a; $i < 10; ++$i);

echo "a=$a, i=$i";

我希望这个循环执行4次,因为$ i成为对$的引用(对吧?)。但是循环只执行一次并输出:

a = 10,i = 10

我无法理解为什么它会像这样工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是有效的,因为for语句由于分号而被处理为单行语句。

for($i = &$a; $i < 10; ++$i);

也可以被视为

for($i = &$a; $i < 10; ++$i) echo $i;

如果没有大括号,则以下行将被视为for语句的一部分,您的行只是一个分号,表示该行的结尾。

正确的代码看起来像这样。

$a = 5;
for($i = $a; $i < 10; ++$i) echo "a=$a, i=$i";