php的require()與include(),在效能上並無大的不同。
僅有的一些不同在於:
include()執行時文件每次都要進行讀取和評估;
require()執行時文件只處理一次(實際上,文件內容取代了require()語句)。
即如果有包含這些指令之一的程式碼和可能執行多次的程式碼,則使用require()效率比較高。
另外,如果每次執行程式碼時要讀取不同的文件,或有透過一組文件疊代的循環,就應該使用include(),因為可以為想要包含的檔案名稱設定一個變量,當參數為include()時使用這個變量。
php的require()性能與include()雖然有相似的地方,但是透過自己的學習和查找,還是找到了6點區別如下。
1、
不同之處在於,對include()來說,在include()執行時文件每次都要進行讀取和評估;
而對於require( )來說,文件只處理一次(實際上,文件內容取代了require()語句)。
這表示如果有包含這些指令之一的程式碼和可能執行多次的程式碼,則使用require()效率比較高。
2、
require是只執行一次的,不,這麼說不恰當。應當說,require是先替代,將指定檔案的內容代進來,再運行,所以它不知道你是否設定了FOR循環。而include語句,
是什麼時候執行到了,什麼把指定檔案的內容代進來,繼續執行。
所以,如果每次執行程式碼時想讀取不同的文件,或者有透過一組文件疊代的循環,就使用include(),因為可以給想要包含的文件名設定一個變量,當參數為include()
時使用這個變數。
3、
include在執行時,如果 include 進來的文件發生錯誤的話,不會立刻停止;而 require 則會立刻終止程序,不再往下執行。
4、include可以用在迴圈; require不行。
5、include有回傳值,而require沒有(可能因為如此require的速度比include快)
ok.php裡的程式碼為echo "ok!";
$login = include('ok.php');
if(!empty($login)){ echo "檔案包含成功";
}else{ echo "檔案包含失敗"; }
最後回傳結果為:ok!檔案包含成功
只要ok.php裡有語句存在,就會回傳成功。
在舉例:
1.php裡的程式碼如下:
return array(
'ILOVEYOU'=>1,2,3 ,4
);
?>
index.php裡的程式碼如下:
$a = array_change_key_case(include '1.php');
print_r($a);
?>
訪問index.php的結果如下:
Array ( [iloveyou] => 1 [0] => 2 [1] = > 3 [2] => 4 )
6、require的使用方法:這個函數通常放在PHP 程式的最前面,PHP 程式在執行前,就會先讀入require 所指定引入的文件,使它變成PHP 程式網頁的一部份。常
用的函數,亦可以這個方法將它引入網頁中。
include使用方法:這個函數一般是放在流程控制的處理部分。 PHP 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化