PHP: Чаму існуе дадатковая пустая радок выхаду з цыклу ў той час?

Вось код PHP:

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

Гэта выхад з каманднага радка на Linux Bash абалонкі:

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 і да запрашэння? Я ўсталёўваю час цыклу павінна быць менш або роўна 13. Ня ці павінна яна спыняцца на дасягнутым? Як гэта кантраляваць, так што аздабленне 13. і не робіць яшчэ адзін цыкл да канца? Ці ёсць лепшы падыход да гэтага? Дзякуй!

0

8 адказы

Я не магу пацвердзіць гэта. Паспрабуйце памерці ў канцы, і вы ўбачыце гэтую выснову:

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
$

It's because you probably have an additional new line after the ?>

2
дададзена
Чаму downvote, гэта не новая лінія пасля 13 гадоў ён задаецца пытаннем аб тым, але пусты радок перад $ .
дададзена аўтар steffen, крыніца
@CORRUPT што прымушае вас думаць, што?
дададзена аўтар steffen, крыніца
Я згодны з @steffen тут, новыя лініі пасля апошняга ?> , хутчэй за ўсё, праблема ФОС.
дададзена аўтар hank, крыніца
Гэта не прычына, у дадзеным выпадку.
дададзена аўтар BlitZ, крыніца
Добра ў мяне ёсць свой пункт. Вы правільна. Upvoted.
дададзена аўтар BlitZ, крыніца

Прычына \ п яна дасягае 13, а затым дадае новы радок, а затым яна сканчаецца.

1
дададзена

For scripts with PHP only, omit the last ?>

Насуперак таму, што ўсе іншыя адказы, гэта, верагодна, прычына.

1
дададзена

Дадатковая пустая радок выклікаецца «\ п» вашага апошняга рэха «я ёсць: $ я». "\ П"; раздрукоўваюць.

Вось як гэта працуе:

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 puts the current cursor to the newline position, ready to append the next character. Try echo "\n" . "i is: $i" ; to understand better.

1
дададзена
Я думаю, што ён задаваўся пытаннем аб пусты радку пасля у 13.
дададзена аўтар steffen, крыніца
@CORRUPT Што вы маеце на ўвазе?
дададзена аўтар steffen, крыніца
падобна @steffen можа быць правільным, а таксама. яна можа быць залежыць ад платформы?
дададзена аўтар Winfred, крыніца

У вас ёсць апошні элемент з \ п, вы можаце праверыць, калі гэта апошні элемент.
Паспрабуйце гэта:

$i = "1";
while ($i <= 13) {
    if($i==13)
        echo "i is: $i";
    else
        echo "i is: $i" . "\n";
    $i++;
}
0
дададзена

Калі вы проста хочаце, каб раздрукаваць нумары вы можаце выкарыстоўваць дыяпазон:

echo 'i is: '. implode("\ni is: ", range(1,13));
0
дададзена
<�Код> \ п neeeds быць у падвойных двукоссях ...
дададзена аўтар steffen, крыніца
@steffen: так, выпраўлена.
дададзена аўтар elclanrs, крыніца

Пустая радок з'яўляецца ў "\ п"

0
дададзена

<�Код> \ п гэта дадае яшчэ адзін радок. Адзін са спосабаў, вы можаце прадухіліць гэта, правяраючы, што гэта апошні элемент, калі пятля

$i = "1";
while ($i <= 13) {
    echo "i is: $i";
    if ($i != 13)
        echo "\n";
    $i++;
}
0
дададзена