PHP:为什么while循环会有额外的输出空行?

PHP:为什么while循环会有额外的输出空行?,php,while-loop,Php,While Loop,以下是PHP代码: $i = "1"; while ($i <= 13) { echo "i is: $i" . "\n"; $i++; } 为什么在13之后和提示之前是空的空行?我正在将while循环设置为小于或等于13。难道不应该到此为止吗?我如何控制它,使它完成13,而不做另一个循环通过?还是有更好的方法?谢谢 额外的空行是由上次回显“i is:$i”的“\n”引起的。“\n”打印输出 它的工作原理如下: i is: 1\n i is: 2\n i is: 3\n

以下是PHP代码:

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

为什么在13之后和提示之前是空的空行?我正在将while循环设置为小于或等于13。难道不应该到此为止吗?我如何控制它,使它完成13,而不做另一个循环通过?还是有更好的方法?谢谢

额外的空行是由上次
回显“i is:$i”的
“\n”
引起的。“\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”以便更好地理解

额外的空行是由上次
回显“i is:$i”的
“\n”
引起的。“\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”以便更好地理解

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

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

如果最后一个元素带有\n,可以检查是否是最后一个元素。
试试这个:

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

如果($i您有带的最后一个元素,\n则可以检查是否是最后一个元素。
试试这个:

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

而($i则
\n
是添加了另一行。可以防止的一种方法是检查循环是否为最后一个成员

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

而($i则
\n
是添加了另一行。可以防止的一种方法是检查循环是否为最后一个成员

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

虽然($i我无法确认。在末尾尝试一个骰子,您将看到以下输出:

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 我是:2 我是:3 我是:4 我是:5 我是:6 我是:7 我是:8 我是:9 我是:10 我是:11 我是:12 我是:13 $
这是因为在
?>

之后可能还有一行新代码。我无法确认。请在末尾尝试一个模具,您将看到以下输出:

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 我是:2 我是:3 我是:4 我是:5 我是:6 我是:7 我是:8 我是:9 我是:10 我是:11 我是:12 我是:13 $
这是因为您可能在
?>

之后有一个额外的新行,对于仅使用PHP的脚本,请忽略最后一行
?>


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

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


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

由“\n”出现的空行。

由“\n”

出现的空行如果您只想打印出数字,您可以使用一个范围:

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

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

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

在这种情况下,这不是一个原因。为什么投反对票,这不是他想知道的13岁以后的新行,而是
$
@腐败之前的空行,你怎么会这么想?我同意@steffen的观点,最后一次
?>
之后的新行很可能是OPs问题。这不是这种情况下的原因。为什么投反对票,这不是后来的新行r 13他想知道,但是,
$
@CORRUPT前面的空行是什么让你这么想的?我同意@steffen的观点,最后一个
?>
后面的新行很可能是OPs问题。@CORRUPT是什么意思?看起来@steffen可能也是正确的。可能是平台相关的吗?@CORRUPT什么意思?看起来像@steffen也可能是正确的。它会依赖于平台吗?