我找到了这样的php代码:
$a = 5;
$i = 4;
for($i = &$a; $i < 10; ++$i);
echo "a=$a, i=$i";
我希望这个循环执行4次,因为$ i成为对$的引用(对吧?)。但是循环只执行一次并输出:
a = 10,i = 10
我无法理解为什么它会像这样工作。有什么想法吗?
答案 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";