當 PHP 解析一個檔案時,會尋找開始和結束旗標,旗標告訴
PHP 開始和停止解釋其中的代碼。此種模式的解析可以使
PHP 內嵌到各種不同的文件中,凡是在一對開始和結束旗標之外的內容都會被
PHP 解析器忽略。大多數情況下 PHP 都是內嵌在 HTML 文件中的,如下例所示。
還可以用更進階的結構:
例子 10-1. 進階分離術
<?php if ($expression) { ?> <strong>This is true.</strong> <?php } else { ?> <strong>This is false.</strong> <?php } ?>
|
|
上例可標準工作,因為當 PHP 碰到結束旗標 ?>
時,就簡單地將其後的內容原樣輸出直到碰到下一個開始旗標為止。當然,上面的例子很做作,但是對輸出大塊的文字而言,脫離
PHP 解析模式通常比將所有內容用
echo()
或是
print() 輸出更有效率。
可以在 PHP 中使用四對不同的開始和結束旗標。其中兩種,<?php ?>
和 <script language="php"> </script> 總是可用的。另兩種是短旗標和
ASP 風格旗標,可以在 php.ini
配置檔中開啟或關閉。儘管有些人覺得短旗標和
ASP 風格旗標很方便,但移植性較差,通常不推薦。
注:
此外注意若果將 PHP 內嵌到 XML 或 XHTML
中則需要使用 <?php ?> 以保持符合標準。
例子 10-2. PHP 開始和結束旗標
1. <?php echo 'if you want to serve XHTML or XML documents, do 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 選項。
注:
若果用 PHP 3 還可以通過 short_tags()
函數啟動使用短旗標。此方法只適用於 PHP 3!
ASP 風格旗標(上例 4)僅在通過 php.ini
配置檔中的指令
asp_tags 開啟後才可用。
注:
對 ASP 風格旗標的支援是 3.0.4 版增加的。
注:
在以下情況應避免使用短旗標:開發需要發行的程式或是庫,或是在會員不能控制的伺服器上開發。因為目的伺服器可能不支援短旗標。為了代碼的移植及發行,確保不要使用短旗標。