PHP 標記解析____PHP

來源:互聯網
上載者:User
PHP 標記

  當解析一個檔案時,PHP 會尋找起始和結束標記,也就是 <?php 和 ?>,這告訴 PHP 開始和停止解析二者之間的代碼。此種解析方式使得 PHP 可以被嵌入到各種不同的文檔中去,而任何起始和結束標記之外的部分都會被 PHP 解析器忽略。

PHP 也允許使用短標記 <? 和 ?>,但不鼓勵使用。只有通過啟用 php.ini 中的 short_open_tag 配置指令或者在編譯 PHP 時使用了配置選項 --enable-short-tags 時才能使用短標記。

如果檔案內容是純 PHP 代碼,最好在檔案末尾刪除 PHP 結束標記。這可以避免在 PHP 結束標記之後萬一意外加入了空格或者分行符號,會導致 PHP 開始輸出這些空白,而指令碼中此時並無輸出的意圖。 <?php
echo "Hello world";

// ... more code

echo "Last statement";

// 指令碼至此結束,並無 PHP 結束標記 從 HTML 中分離

凡是在一對開始和結束標記之外的內容都會被 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 解譯器會根據條件判斷來決定哪些輸出,哪些跳過。見下例。

使用條件結構:

Example #1 使用條件的進階分離術 <?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 ?> 標記以保持符合標準。

Example #2 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 的設定是什麼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.