奇怪的PHP行为

时间:2014-05-22 11:50:39

标签: php logic

我有这个简单的代码来打印* s。

的模式
<?php
for($outer = 1; $outer <= 5; $outer++){
    for($inner = 1; $inner<=$outer; $inner){
        echo '*';
    }
    echo '<br/>';
}
?>

当我运行它时,浏览器会继续加载并且什么都不做。这是什么?

3 个答案:

答案 0 :(得分:2)

你永远不会增加$inner。使用它来获得预期的结果:

<?php
for($outer = 1; $outer <= 5; $outer++){
    for($inner = 1; $inner<=$outer; $inner++){
                                      //  ^^ This bit changed.
        echo '*';
    }
    echo '<br/>';
}
?>

因此浏览器将继续加载,直到Apache(或您正在使用的任何服务器)达到时间限制时才会终止该脚本。

答案 1 :(得分:2)

您未在第3行递增$inner

for($inner = 1; $inner<=$outer; $inner)

应该是

for($inner = 1; $inner<=$outer; $inner++)

在它的当前状态下,它无限循环。

答案 2 :(得分:1)

你没有递增$inner并且陷入了看起来的循环中。

<?php
for($outer = 1; $outer <= 5; $outer++){
    for($inner = 1; $inner<=$outer; $inner++){
        echo '*';
    }
    echo '<br/>';
}
?>