0

这是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 并且不进行另一个循环?或者有更好的方法吗?谢谢!

4

8 回答 8

2

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

我是:1
我是:2
我是:3
我是:4
我是:5
我是:6
我是:7
我是:8
我是:9
我是:10
我是:11
我是:12
我是:13
$

这是因为您可能在?>

于 2013-05-23T07:26:55.927 回答
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" ;更好地理解。

于 2013-05-23T07:24:35.597 回答
1

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

于 2013-05-23T07:24:39.643 回答
1

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

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

于 2013-05-23T07:27:16.160 回答
0

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

$i = "1";
while ($i <= 13) {
    if($i==13)
        echo "i is: $i";
    else
        echo "i is: $i" . "\n";
    $i++;
}
于 2013-05-23T07:25:10.683 回答
0

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

$i = "1";
while ($i <= 13) {
    echo "i is: $i";
    if ($i != 13)
        echo "\n";
    $i++;
}
于 2013-05-23T07:26:43.843 回答
0

“\n”出现的空行

于 2013-05-23T07:32:51.920 回答
0

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

echo 'i is: '. implode("\ni is: ", range(1,13));
于 2013-05-23T07:33:09.837 回答