PHP教學-基本語法(Syntax)
PHP教學 - 基本語法(Syntax)
介紹PHP基本的語法和使用方式,包含如何執行PHP、在HTML嵌入PHP與註解。
1. 如何執行PHP?
介紹PHP基本的語法和使用方式,包含如何執行PHP、在HTML嵌入PHP與註解。
1. 如何執行PHP?
在網站目錄下建立一個文字檔副檔名存為.php,例如:hello.php,寫入:
<?php echo "Hello world"; ?>
假設你已經架設好環境,接著用瀏覽器輸入網頁路徑即可,其中echo表示輸出顯示的意思。
2. 在HTML嵌入PHP程式
2.1 嵌入方式
2.1-1. 使用<?php...?>
<p>這裡不會處理 exit(); </p> <?php echo "只會處理這裡"; ?> <p>這裡也不會處理 phpinfo(); </p>
結果:
這裡不會處理 exit();
只會處理這裡
這裡也不會處理 phpinfo();
exit()和phpinfo()的PHP指令不會執行到。
2.1-2. 使用<script language="php">...</script>
<script language="php"> echo "但編輯器上色可能會有問題"; </script>
2.1-3. 使用<?...?>
<? echo "php.ini的short_open_tag必須開啟"; ?>
short_open_tag功能開啟後也能這樣使用
<?=$text?>
2.1-4. 使用<%...%>
<% echo "php.ini的asp_tags必須開啟"; %>
asp_tags功能開啟後也能這樣使用
<%=$text%>
2.1-5 交錯的用法
PHP直譯器甚至能解析交錯的用法...
<script language="php">
echo "但這是很詭異的作法!";
?>
echo "但這是很詭異的作法!";
?>
2.2 PHP與HTML搭配使用
一般可用上述的方式來使用,一個使用控制流程的範例
<?php if($grade>=60) { ?> <b>恭喜!你及格了</b> <?php } else { ?> <i>你不及格!</i> <?php } ?>
或直接用程式輸出
<?php if($gra-->=60) { echo "<strong>恭喜!你及格了</strong>"; } else { echo "<em>你不及格!</em>"; } ?>
也可以使用heredoc或nowdoc的方式
<?php if($grade>=60) { echo "<b>恭喜!你及格了</b>"; } else { echo "<i>你不及格!</i>"; } ?>
最好的方式是使用樣板(Template)的方式處理,日後有機會再介紹。
2.3 常見問題
2.3-1 編輯器的解析錯誤
某些情況下程式碼雖然正確,但是會造成一些網頁編輯器(例如:Dreamweaver)解析錯誤而造成預覽不正常,例如:
不安全的<?php if ($grade>=60) { echo "恭喜!你及格了"; } ?>嵌入
程式執行不會有錯,但編輯器中的預覽可能會變成:
不安全的=60) { echo "恭喜!你及格了"; } ?>嵌入
這是因為編輯器可能誤將
<?php if ($grade>視為一個HTML標籤,又無此標籤而進行忽略,可在嵌入的前後加上/*><!--*/和/*--><?*/來避免
不安全的<?php /*><!--*/ if ($grade>=60) { echo "恭喜!你及格了"; } /*--><?*/ ?>嵌入
利用當中的<!--和-->讓編輯器將此段視為HTML的註解而不顯示。
2.3-2 Pre嵌入問題
在HTML標籤<Pre>中嵌入PHP語法有可能會造成不正確的斷行,例如:
<pre> 第一行 <?php //什麼也不做 ?> 第二行 </pre>
結果:
第一行 第二行
但我們預期的結果應該是要
第一行
第二行
第二行
3. 指令的結尾
就像大多數的程式語言一樣,PHP每個指令結束使用分號(;)區隔,而PHP有兩個額外的特性:
<?php echo "單行指令可以不用分號" ?> <?php echo "程式最後一行可以不用結尾符號";
Note:
文件末尾的 PHP 程式碼段結束標記可以不要,有些情況下當使用 include 或者 require 時省略掉會更好些,這樣不期望的空白符就不會出現在文件末尾,之後仍然可以輸出響應標頭。在使用輸出緩衝時也很便利,就不會看到由包含文件產生的不期望的空白符。
文件末尾的 PHP 程式碼段結束標記可以不要,有些情況下當使用 include 或者 require 時省略掉會更好些,這樣不期望的空白符就不會出現在文件末尾,之後仍然可以輸出響應標頭。在使用輸出緩衝時也很便利,就不會看到由包含文件產生的不期望的空白符。
4. 註解
4.1 註解的用法
註解的部份不會執行,是給人看的,PHP中有三種註解方式:
// 單行註解:兩個斜線後面的部份將不會處理。
# 單行註解:和1.一樣功能,是shell-style的寫法。
/* ... */ 多行註解:註解中間的部份將不會處理。
# 單行註解:和1.一樣功能,是shell-style的寫法。
/* ... */ 多行註解:註解中間的部份將不會處理。
<?php echo "註解一"; //單行註解 echo "註解二"; #單行註解 echo "註解三"; /*多行註解 第二行*/ ?>
4.2 註解的技巧
我們可以利用//* ... //*/的寫法來作為區塊註解的開關
<?php echo "不會影響到"; //*區塊註解開關 if ($confition) { echo "要註解的區塊"; } //*/ echo "不會影響到"; ?>
藉由刪除/加入開頭的斜線作為開啟或關閉區塊
<?php echo "不會影響到"; /*區塊註解開關 if ($confition) { echo "要註解的區塊"; } //*/ echo "不會影響到"; ?>
4.3 常見問題
有時候程式中的字元會影響到註解,例如:
<?php //echo "<?xml version=\"1.0\"?>"; ?>
上面的例子雖然在此上色是對的,不過實際執行,卻會被echo中的?>影響而當做php的結尾符號,而跳出PHP程序。而其他例子如下:
<?php /* echo '常犯的錯誤'; /* 註解的解析錯誤 */ */ ?>
<?php /* $f->setPattern('/^\d.*/); */ ?>
留言
張貼留言