| |初探|語法|資料型態|變數與常數|外部變數|環境變數|運算元|流程控制|函數|物件| | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PHP 簡介 |
| ||||||||||||
|
引用檔案 | |||||||||||||
require( ) 與 require_once( ) | |||||||||||||
| require 的使用方法如 require("header.inc"); 。這個語法通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的檔案,使它變成 PHP 程式網頁的一部份。常用的函式可以寫成一個函式庫檔案,然後用這個方法將它引入網頁中。 | |||||||||||||
| require_once 的作用和 require 是幾乎相同的,唯一的差別在於 require_once 會先檢查要引入的檔案是不是已經在該程式中的其他地方被引入過了;如果有的話,就不會再次重複引入該檔案。這項功能有時候是很重要的,比方說要引入的檔案裡面宣告了一些我們自行定義的函數,那麼如果在同一個程式重複引入這個檔案,在第二次引入的時候便會發生錯誤訊息,因為 PHP 不允許相同名稱的函數被重複宣告。 | |||||||||||||
include( ) 與 include_once( ) | |||||||||||||
| include 使用方法如 include("header.inc"); 。這個語法一般是放在流程控制的處理區段中。PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化。 | |||||||||||||
| 如同 require_once,include_once 會先檢查欲引入檔案的內容是不是在之前就已經引入過了;如果是的話,便不會再次重複引入同樣的內容。 | |||||||||||||
require V.S. include | |||||||||||||
| require( )會將目標檔案的內容讀入,並且把自己本身代換成這些讀入的內容。這個讀入與代換的動作發生在 PHP 引擎編譯程式碼的時候,而不是發生在 PHP 引擎開始執行編譯好的程式碼時(PHP 3 引擎的工作方式是編譯一行,執行一行;但是到了 PHP 4 就不太一樣了,PHP 4 先把整個程式碼全部編譯完成後,再將這些編譯好的程式碼一次執行完畢,在編譯的過程中不會執行任何程式碼)。 | |||||||||||||
| 由此看來,require( ) 適合用來引入靜態的內容(如版權宣告),而 include( ) 則適合用來引入動態的程式碼(程式內容會依其他程式碼而變動)。 | |||||||||||||
注意事項 | |||||||||||||
| 在使用 require 或 include 引用某個檔案時,PHP 是以 HTML 格式讀入。若您要引用的檔案中含有 PHP script 的話,請以 <? ?>將程式段落包起來。 | |||||||||||||
| 若您無論如何都要引用某個檔案,則使用 require 或 include 皆可。若您需經條件判斷之後,才能決定是否引用該檔案的話,則只能使用 include。 | |||||||||||||
| require 與 include 都是個語法,而非函數,所以下方例子中的 { } 不能省略。 | |||||||||||||
|
<? if ( $browser == "MSIE" ) { include ("menu_IE.inc"); } else { include ("menu_Other.inc"); } ?> | |||||||||||||
|
在「主」檔案中,使用 require 或 include 將某個「客」檔案引用進來之後,路徑關係一律都以「主」檔案為主。請看下列三個檔案的路徑關係: | |||||||||||||
| |||||||||||||
| 從 guest.inc(客)來看,PHOTO.JPG 與它在同一路徑下,使用 <img src="PHOTO.JPG"> 便可以顯示該圖;但是被 master.php(主)給引用之後,路徑關係就得以「主」檔案為主,而 master.php 與 PHOTO.JPG 又不在同一路徑下,所以該圖是無法顯示的。 | |||||||||||||
|
| |||||||||||||
| |初探|語法|資料型態|變數與常數|外部變數|環境變數|運算元|流程控制|函數|物件| | |||||||||||||


require( ) 與 require_once( )