凡是在一對開始和結束標記之外的內容都會被 PHP 解析器忽略,這使得 PHP 文件可以具備混合內容。 可以使 PHP 嵌入到 HTML 文檔中去,如下例所示。
~~~
<p>This is going to be ignored by PHP and displayed by the browser.</p>
<?php echo 'While this is going to be parsed.'; ?>
<p>This will also be ignored by PHP and displayed by the browser.</p>
~~~
這將如預期中的運行,因為當 PHP 解釋器碰到 ?> 結束標記時就簡單地將其后內容原樣輸出(除非馬上緊接換行 - 見指令分隔符)直到碰到下一個開始標記;例外是處于條件語句中間時,此時 PHP 解釋器會根據條件判斷來決定哪些輸出,哪些跳過。見下例。
使用條件結構:
## 使用條件的高級分離術
~~~
<?php if ($expression == true): ?>
This will show if the expression is true.
<?php else: ?>
Otherwise this will show.
<?php endif; ?>
~~~
上例中 PHP 將跳過條件語句未達成的段落,即使該段落位于 PHP 開始和結束標記之外。由于 PHP 解釋器會在條件未達成時直接跳過該段條件語句塊,因此 PHP 會根據條件來忽略之。
要輸出大段文本時,跳出 PHP 解析模式通常比將文本通過 echo 或 print 輸出更有效率。
可以在 PHP 中使用四對不同的開始和結束標記。其中兩種,<?php ?> 和 <script language="php"> </script> 總是可用的。另兩種是短標記和 ASP 風格標記,可以在 php.ini 配置文件中打開或關閉。盡管有些人覺得短標記和 ASP 風格標記很方便,但移植性較差,通常不推薦使用。
>Note:
此外注意如果將 PHP 嵌入到 XML 或 XHTML 中則需要使用 <?php ?> 標記以保持符合標準。
## PHP 開始和結束標記
~~~
1. <?php echo 'if you want to serve XHTML or XML documents, do it like this'; ?>
2. <script language="php">
echo 'some editors (like FrontPage) don\'t
like processing instructions';
</script>
3. <? echo 'this is the simplest, an SGML processing instruction'; ?>
<?= expression ?> This is a shortcut for "<? echo expression ?>"
4. <% echo 'You may optionally use ASP-style tags'; %>
<%= $variable; # This is a shortcut for "<% echo . . ." %>
~~~
上例中的 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 的設置是什么。
- 入門指引
- 簡介
- PHP是什么
- PHP能做什么
- 簡明教程
- 學PHP需要什么
- 我的第一個PHP頁面
- 實用的PHP腳步
- PHP是如何處理表單的
- 在新版本的PHP如何實用舊的PHP代碼
- 下一步需要做什么
- PHP語言參考
- PHP基本語法
- PHP標記
- PHP多進程管理-pcntl_fork
- PHP文件上傳易犯錯誤
- PHP從HTML中分離
- PHP的指令分隔符
- PHP序列化serialize
- PHP類常量
- PHP Traits
- 從 HTML 中分離
- 注釋
- PHP數據類型
- PHP支持的類型簡介
- 布爾類型(Boolean)就是易經知識
- 整型(integer)即整數
- 浮點型(float)
- 字符串(string)
- 數組(Array)
- 對象(object)一定要搞
- 資源類型(resource)
- PHP安裝與環境配置
- 安裝前需要考慮的事項
- Unix系統下安裝PHP
- Unix 系統下安裝 Apache 1.3.x
- Unix 系統下安裝 Apache 2.x
- Unix 系統下安裝 Nginx 1.4.x
- Unix 平臺安裝 Lighttpd 1.4
- Sun Solaris 上的 Sun、iPlanet 和 Netscape 服務器
- CGI 命令行設置
- 針對 HP-UX 平臺的安裝提示
- 在 OpenBSD 系統下的安裝PHP
- Debian GNU/Linux 安裝說明
- 在Mac OS X 系統下安裝PHP
- 使用軟件包
- 使用內置的 PHP
- Windows 系統下的安裝
- 云計算平臺上的安裝
- Microsoft Azure
- 在亞馬遜(Amazon EC2)安裝PHP
- PHP語法參考
- 類型
- NULL
- Callback 回調類型
- 本文檔中使用的偽類型與變量
- 類型轉換的判別
- PHP 類型比較表
- 常量和變量
- 語法基礎
- 預定義變量
- 變量范圍
- 可變變量
- 外部變量
- 常量
- 語法
- 魔術常量
- PHP表達式&運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 錯誤控制運算符
- 執行運算符
- 遞增/遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- continue
- switch
- declare
- return
- require
- include
- require_once