php语句结束标记,PHP结束标记“?”
本問題已經有最佳答案,請猛點這里訪問。
我有一個PHP結束標記的有趣現象。 我有一個由Ajax調用執行的php文件。 在php文件中包含了一個具有各種功能的php庫文件。 當這個庫被包含時,php響應包括一堆空行。 當我從庫中刪除結束標記時,這種情況就停止了。
任何人都可以向我解釋這里發生了什么?
你可能在?>標簽后面有一些空行,然后空行被解釋為空行。 刪除php結束標記時,這些行被視為php代碼,并且空的php行不會寫入輸出緩沖區。
庫PHP文件在?>之后有一堆換行符。 它們作為輸出直接發送到輸出緩沖區,因為它們不會被解釋為中的PHP代碼。 這是"已發送標頭"錯誤的最常見原因,以及許多框架省略?>的原因。
php.net/manual/en/language.basic-syntax.phptags.php"如果文件是純PHP代碼,最好省略文件末尾的PHP結束標記。這可以防止意外的空格或新行 在PHP結束標記之后添加"
我認為這個回答在另一個類似的問題上是一個完美的答案。
這是有據可查的。從PHP手冊:
The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include() or require(), so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files.
省略結束標記有助于防止意外的空格或換行符添加到文件末尾。
這是PHP的核心功能:與其他語言不同,您需要使用特殊標記(通常為)標記PHP代碼,因為其他所有內容都被視為文字輸出:
This is not PHP
echo 'This is PHP' . PHP_EOL;
?>
This is not PHP either
D:\tmp>php test.php
This is not PHP
This is PHP
This is not PHP either
盡管手冊提到了HTML,但PHP并不真正了解/關心其標簽之外的內容類型。
如果您忘記在進一步填充后關閉PHP塊,通常會出現語法錯誤:
This is not PHP
echo 'This is PHP' . PHP_EOL;
This is not PHP either
D:\tmp>php test.php
PHP Parse error: ?syntax error, unexpected 'is' (T_STRING) in D:\tmp\borrame.php on line 6
空行是一種特殊情況,因為它們在幾乎所有語言(PHP,HTML,CSS,JavaScript ......)中都是有效且幾乎不可見的,因此它們經常被忽視。
刪除?>標記后,文字空白行已從腳本輸出中消失,因為它們已成為PHP代碼的一部分(因此,它們已開始被忽略)。
當然,PHP會忽略空行,但不一定是你生成的任何內容,正如我所說,它不需要是HTML:它可以是圖片,PDF文檔,Excel電子表格。當它是文件的最后一部分時,不關閉最后一個PHP塊,可以很容易地避免偽造白線。
今天你不應該在你的PHP中使用echo。 指向MVC,模板系統,框架等。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的php语句结束标记,PHP结束标记“?”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为5g鸿蒙折叠,华为5G折叠概念新机:
- 下一篇: jpg无损压缩 java_使用FreeI