文章目錄
為了深入瞭解PHP,以及更加便利的使用PHP為我們服務,本章節主要介紹PHP的基本文法。
一、從HTML中分離
PHP 的指令碼由檔案中一對特殊的標記所引起的內容,當解譯器分析一個檔案時,所有特殊標記外的普通檔案,解譯器不對其做任何處理,而特殊標記內檔案將作為 PHP 代碼被解譯器分析執行。該運行機制將允許您在 HTML 中嵌入 PHP 代碼:PHP 標記外的內容將被完全獨立開,不做任何處理,而內部的將作為 PHP 代碼解析。
用來標記 PHP 代碼塊的標記共有四套,其中只有兩套總是有效(<?php. . .?> 和 <script language="php">. . .</script>);另外兩套可以在 php.ini 設定檔中開啟或者關閉。雖然短格式的標記和 ASP 風格的標記可能比較省力,但是某些情況下您可能必須要使用長格式的標記。比如,您打算在 XML 或者 XHTML 中嵌入 PHP 代碼,您將需要使用 <?php. . .?> 形式的標記以適應 XML 的標準。
PHP 支援的標記為:
代碼1:從HTML中分離的方式:
1. <?php echo("if you want to serve XHTML or XML documents, do like this/n"); ?></p><p>2. <? echo ("this is the simplest, an SGML processing instruction/n"); ?><br /> <?= expression ?> This is a shortcut for "<? echo expression ?>"</p><p>3. <mce:script language="php"><!--<br /> echo ("some editors (like FrontPage) don't<br /> like processing instructions");</p><p>// --></mce:script></p><p>4. <% echo ("You may optionally use ASP-style tags"); %><br /> <%= $variable; # This is a shortcut for "<% echo . . ." %>
優先選用的方式為第一種方式 <?php. . .?>,因為它允許您在 XML 結構,如 XHTML 的代碼中使用 PHP。
第二種方式並非總是可用的。只有當您在 php.ini 設定檔中啟用 short_open_tag 選項,才是可用的。您也可以通過使用 short_tags() 函數(僅用於 PHP 3),或者使用 --enable-short-tags 選項 configure PHP 來啟用短格式標記。在 php.ini-dist 設定檔中,預設是開啟短格式標記的,但是建議您不要使用該標記。
在 PHP 設定檔中開啟選項 asp_tags 將啟用第四種方式。
注: ASP 風格的標記添加於 PHP 3.0.4
注: 當開發大型應用程式或者用於分發的函數庫,或者在不受您控制的 PHP 伺服器上面開發程式時,請不要使用短格式的標記,因為目標伺服器可能並不支援短格式的標記。為了便於移植,請保證用於再分發的代碼中不使用短格式的標記。
PHP 代碼塊結束標記獎自動包含最近的一個結尾的新行(如果存在的話)。而且,結束標記自動隱含一個分號; 您不需要為 PHP 代碼塊的最後行追加一個分號。
PHP 允許您使用如下的結構:
代碼2:更進階的脫離
<?php<br />if ($expression) {<br /> ?><br /> <strong>This is true.</strong><br /> <?php<br />} else {<br /> ?><br /> <strong>This is false.</strong><br /> <?php<br />}<br />?>
PHP 將直接輸出結束標記和下一個開始標記中的任何非 PHP 代碼。當需要輸出大量的文本時,退出 PHP 解析模式將比使用 echo() 或者 print() 或者此類的函數列印所有文本要更加的有效。
二、指令分隔字元
指令分隔方式與 C 或者 Perl 類似 -- 每個語句由分號格開。
結束標記(?>)同樣隱含語句的結束,因此下面的代碼是等價的:
<?php<br /> echo "This is a test";<br />?><br /><?php echo "This is a test" ?>
三、注釋
PHP 支援 'C','C++' 和 Unix Shell 風格的注釋。例如:
<?php<br /> echo "This is a test"; // This is a one-line c++ style comment<br /> /* This is a multi line comment<br /> yet another line of comment */<br /> echo "This is yet another test";<br /> echo "One Final Test"; # This is shell-style style comment<br />?>
“單行”注釋僅僅注釋到行末或者當前的 PHP 代碼塊,視乎哪個首先出現。
<h1>This is an <?php # echo "simple";?> example.</h1><br /><p>The header above will say 'This is an example'.
小心不要嵌套 'C' 風格的注釋,當注釋大量代碼時,可能犯該錯誤。
<?php<br />/*<br /> echo "This is a test"; /* This comment will cause a problem */<br />*/<br />?>
“單行”注釋僅僅注釋到行末或者當前的 PHP 代碼塊,視乎哪個首先出現。這意味著 // ?> 後面的 HTML 程式碼將被列印出來:?> 跳出了 PHP 模式並且返回 HTML 模式,而且 // 注釋符並不會影響到模式的轉換。