PHP 標記
當解析一個文件時,PHP 會尋找起始和結束標記,也就是<?php 和 ?>,這告訴PHP 開始和停止解析二者之間的代碼。此種解析方式使得 PHP 可以被嵌入到各種不同的文檔中去,而任何起始和結束標記之外的部分都會被 PHP 解析器忽略。
PHP 也允許使用短標記 <? 和 ?>,但不鼓勵使用。只有通過激活php.ini中的 short_open_tag 配置指令或者在編譯 PHP 時使用了配置選項 --enable-short-tags 時才能使用短標記。
如果文件內容是純 PHP 代碼,最好在文件末尾刪除 PHP 結束標記。這可以避免在 PHP 結束標記之后萬一意外加入了空格或者換行符,會導致 PHP 開始輸出這些空白,而腳本中此時并無輸出的意圖。
// 腳本至此結束,并無 PHP 結束標記
從 HTML 中分離
凡是在一對開始和結束標記之外的內容都會被 PHP 解析器忽略,這使得 PHP 文件可以具備混合內容。 可以使 PHP 嵌入到 HTML 文檔中去,如下例所示。
這將如預期中的運行,因為當 PHP 解釋器碰到 ?> 結束標記時就簡單地將其后內容原樣輸出(除非馬上緊接換行 - 見指令分隔符)直到碰到下一個開始標記;例外是處于條件語句中間時,此時 PHP 解釋器會根據條件判斷來決定哪些輸出,哪些跳過。見下例。
使用條件結構:
Example #1 使用條件的高級分離術
上例中 PHP 將跳過條件語句未達成的段落,即使該段落位于 PHP 開始和結束標記之外。由于 PHP 解釋器會在條件未達成時直接跳過該段條件語句塊,因此 PHP 會根據條件來忽略之。
要輸出大段文本時,跳出 PHP 解析模式通常比將文本通過 echo 或 print 輸出更有效率。
可以在 PHP 中使用四對不同的開始和結束標記。其中兩種,<?php ?> 和 <script language="php"> </script> 總是可用的。另兩種是短標記和 ASP 風格標記,可以在php.ini配置文件中打開或關閉。盡管有些人覺得短標記和 ASP 風格標記很方便,但移植性較差,通常不推薦使用。
Note:
此外注意如果將 PHP 嵌入到 XML 或 XHTML 中則需要使用 <?php ?> 標記以保持符合標準。
Example #2 PHP 開始和結束標記
上例中的 1 和 2 中使用的標記總是可用的,其中示例 1 中是最常用,并建議使用的。
短標記(上例 3)僅在通過php.ini配置文件中的指令 short_open_tag 打開后才可用,或者在 PHP 編譯時加入了 --enable-short-tags 選項。
ASP 風格標記(上例 4)僅在通過php.ini配置文件中的指令 asp_tags 打開后才可用。
Note:
在以下情況應避免使用短標記:開發需要再次發布的程序或者庫,或者在用戶不能控制的服務器上開發。因為目標服務器可能不支持短標記。為了代碼的移植及發行,確保不要使用短標記。
Note:
在 PHP 5.2 和之前的版本中,解釋器不允許一個文件的全部內容就是一個開始標記 <?php。自 PHP 5.3 起則允許此種文件,但要開始標記后有一個或更多白空格符。
Note:
自 PHP 5.4 起,短格式的 echo 標記 <?= 總會被識別并且合法,而不管 short_open_tag 的設置是什么。
指令分隔符
同 C 或 Perl 一樣,PHP 需要在每個語句后用分號結束指令。一段 PHP 代碼中的結束標記隱含表示了一個分號;在一個 PHP 代碼段中的最后一行可以不用分號結束。如果后面還有新行,則代碼段的結束標記包含了行結束。
Note:
文件末尾的 PHP 代碼段結束標記可以不要,有些情況下當使用 include 或者 require 時省略掉會更好些,這樣不期望的空白符就不會出現在文件末尾,之后仍然可以輸出響應標頭。在使用輸出緩沖時也很便利,就不會看到由包含文件生成的不期望的空白符。
注釋
PHP 支持 C,C++ 和 Unix Shell 風格(Perl 風格)的注釋。例如:
單行注釋僅僅注釋到行末或者當前的 PHP 代碼塊,視乎哪個首先出現。這意味著在 // ... ?> 或者 # ... ?> 之后的 HTML 代碼將被顯示出來:?> 跳出了 PHP 模式并返回了 HTML 模式,// 或 # 并不能影響到這一點。如果啟用了 asp_tags 配置選項,其行為和 // %> 或 # %> 相同。不過,</script> 標記在單行注釋中不會跳出 PHP 模式。
C 風格的注釋在碰到第一個 */ 時結束。要確保不要嵌套 C 風格的注釋。試圖注釋掉一大塊代碼時很容易出現該錯誤。


