PHP:为什么while循环还有一个空行输出?

时间:2013-05-23 07:22:52

标签: php while-loop

这是PHP代码:

$i = "1";
while ($i <= 13) {
    echo "i is: $i" . "\n";
    $i++;
}

这是Linux Bash shell上命令行的输出:

i is: 1
i is: 2
i is: 3
i is: 4
i is: 5
i is: 6
i is: 7
i is: 8
i is: 9
i is: 10
i is: 11
i is: 12
i is: 13

$ 

为什么在13之后和提示之前是一个空的空行?我将while循环设置为小于或等于13.它不应该停在那里吗?我如何控制它,使其完成13并且不再进行另一次循环?或者有更好的方法吗?谢谢!

8 个答案:

答案 0 :(得分:2)

我无法确认。最后尝试骰子,你会看到这个输出:

i is: 1
i is: 2
i is: 3
i is: 4
i is: 5
i is: 6
i is: 7
i is: 8
i is: 9
i is: 10
i is: 11
i is: 12
i is: 13
$

这是因为您可能在?>

之后还有一个新行

答案 1 :(得分:1)

额外的空行是由您上次"\n"打印出来的echo "i is: $i" . "\n";引起的。

它的工作原理如下:

i is: 1\n
i is: 2\n
i is: 3\n
i is: 4\n
i is: 5\n
i is: 6\n
i is: 7\n
i is: 8\n
i is: 9\n
i is: 10\n
i is: 11\n
i is: 12\n
i is: 13\n

和每个

i is: 1\n

显示为

i is: 1

$ 

\n将当前光标置于换行位置,准备附加下一个字符。 请尝试echo "\n" . "i is: $i" ;以便更好地理解。

答案 2 :(得分:1)

\n达到13的原因然后添加一个新行然后结束。

答案 3 :(得分:1)

对于仅使用PHP的脚本,请省略最后一个?>

与所有其他答案所说的相反,这可能是原因。

答案 4 :(得分:0)

你有最后一个元素\ n,你可以检查是否是最后一个元素 试试这个:

$i = "1";
while ($i <= 13) {
    if($i==13)
        echo "i is: $i";
    else
        echo "i is: $i" . "\n";
    $i++;
}

答案 5 :(得分:0)

\n会添加另一行。您可以阻止的一种方法是检查它是否是循环的最后一个成员

$i = "1";
while ($i <= 13) {
    echo "i is: $i";
    if ($i != 13)
        echo "\n";
    $i++;
}

答案 6 :(得分:0)

“\ n”

出现的空行

答案 7 :(得分:0)

如果您只想打印出数字,可以使用范围:

echo 'i is: '. implode("\ni is: ", range(1,13));