PHP4使用者手冊:流程控制->require (轉)

worldblog發表於2007-12-10
PHP4使用者手冊:流程控制->require (轉)[@more@]

require()

指令碼類//PHP手冊/fancy/function.require.html">require() 語句用它指定的代替它自己,這很像C中的預處理#include 的功能。

如果在PHP中"URL fopen wrappers"項是開啟的(這是預設的),你可以在中使用URL代替本地路徑。更多的資訊參見和。

一個重要的提示是:當一個檔案被或時,是怎樣工作的,從目標檔案開始分析PHP模組和HTML模組的點滴,在結束時重新摘要PHP模組。

前提是,有一些被有效地含著的可的PHP程式碼在檔案中。

實際上不是一個PHP:正確的說,它是一個語言的構成部分。它的規則與函式有一些不同。如, 不會受包含控制結構的控制。另外,它不會返回任何值;嘗試從中讀取一個返回值的結果是解析錯誤。

不同的是, 將總是讀目標檔案,即使它沒有可執行的行。如果你想有條件的包含一個檔案,請使用。條件語句不會影響。 可是,if the line on which the occurs is not executed, neither will any of the code in the target file be executed.

類似的,迴圈控制也不會影響的行為。 儘管包含檔案仍然受迴圈的控制,但是 只執行一次。

這意味著,你不能把 語句放在一個迴圈語句中,期待著它能在每一次迴圈中包含不同的檔案。要這樣做,請使用 語句。

require ('header.inc');


當一個檔案被包含時, 包含著的程式碼將繼承發生 那行的變數作用域。在呼叫檔案行的任何可用變數在被呼叫檔案中都將可用。如果 發生在正在呼叫檔案中的函式里,這時被呼叫檔案中的全部程式碼就好像已經被定義在了函式中一樣。

如果包含的檔案是經過HTTP使用fopen開啟的,如果目標伺服器能作為PHP程式碼解析目標檔案,變數可以使用帶有URL的有HTTP GET請求字串的傳遞。嚴格的說一個檔案和繼承它的父檔案的變數作用域是不同的:這個指令碼實際上是執行在伺服器上,在本地指令碼中包含的是它的結果。

/* 這人例子假設someserver已經配置了.php的解析而不是.txt檔案。 * 同樣,'works' 意味著被包含檔案中的變數$varone 和$vartwo 是可用的*/ /* Won't work; file.txt wasn't handled by someserver. */ require (""); /* Won't work; looks for a file named 'file.php?varone=1&vartwo=2' * on the local filesystem. */ require ("file.php?varone=1&vartwo=2"); /* Works. */ require (""); $varone = 1; $vartwo = 2; require ("file.txt"); /* Works. */ require ("file.php"); /* Works. */


在PHP 3中,只要語句在被檔案的全域性作用域內發生,被 的檔案可能執行一個return 語句。不可以發生在任何塊(大括號中)的內部。在PHP 4中,這人功能已被停止。如果你需要這樣的功能,參見。

參見 , , , , 和 .



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991073/,如需轉載,請註明出處,否則將追究法律責任。

相關文章