2016-12-29 44 views
2

考慮test.php的PHP是消除回聲語句後輸入一個換行符

OK 
here 
<?php echo "now"; ?> 
what 

,如果你要運行這個文件,你可以指望它輸出如下:

OK 
here 
now 
what 

但它返回

OK 
here 
nowwhat 

這是什麼原因造成的?可以預防嗎?

P.S.

如果您在PHP代碼所在的行後添加任何字符,甚至是空格,則換行符將被重新標記。

OK 
here 
<?php echo "now"; ?>[space] 
what 
+2

你需要明確呼應換行符。除非你告訴它,否則PHP不會這樣做。 – aynber

+1

@aynber文件中已經有一個換行符。它似乎PHP正在刪除它。因爲如果我簡單地在php行之後添加一個空格,那麼換行符就起作用了。 – Jimbotron

回答

2

如同在C或Perl,PHP要求在每個語句的末尾分號結束的指令。一段PHP代碼的結束標記自動包含分號;你不需要用分號來終止PHP塊的最後一行。 塊的結束標記將包括緊接着的換行符(如果存在的話)。

php.net

所以 「吃」 一個換行符的是預期的行爲。你找到的解決方法是放置一個空間,或者使用上面的答案並添加一個\ n。

+0

感謝您提供文檔中的部分。我想在ini中沒有辦法改變這種行爲。 – Jimbotron

0

請添加break標籤內回聲

OK 
here 
<?php echo "now <br>"; ?> 
what 

而你的輸出將是這樣的:

OK 
here 
now 
what 
+0

這個問題不是關於如何創建新行。這是關於爲什麼php在''>''之後刪除'\ n'。順便說一句,如果你想在這個例子中創建新行,你需要用'\ n'而不是'
' – ICE