|
php的require()與include(),在性能方面并無(wú)大的不同。
僅有的一些不同在于:
include()執(zhí)行時(shí)文件每次都要進(jìn)行讀取和評(píng)估;
require()執(zhí)行時(shí)文件只處理一次(實(shí)際上,文件內(nèi)容替換了require()語(yǔ)句)。
即如果有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高。
另外,如果每次執(zhí)行代碼時(shí)要讀取不同的文件,或有通過(guò)一組文件疊代的循環(huán),就應(yīng)該使用include(),因?yàn)榭梢越o想要包括的文件名設(shè)置一個(gè)變量,當(dāng)參數(shù)為include()時(shí)使用這個(gè)變量。
php的require()性能與include()雖然有相似的地方,但是通過(guò)自己的學(xué)習(xí)和查找,還是找到了6點(diǎn)區(qū)別如下。
1、
不同之處在于,對(duì)include()來(lái)說(shuō),在include()執(zhí)行時(shí)文件每次都要進(jìn)行讀取和評(píng)估;
而對(duì)于require()來(lái)說(shuō),文件只處理一次(實(shí)際上,文件內(nèi)容替換了require()語(yǔ)句)。
這就意味著如果有包含這些指令之一的代碼和可能執(zhí)行多次的代碼,則使用require()效率比較高。
2、
require是只執(zhí)行一次的,不,這么說(shuō)不恰當(dāng)。應(yīng)當(dāng)說(shuō),require是先替代,將指定文件的內(nèi)容代進(jìn)來(lái),再運(yùn)行,所以它不知道你是否設(shè)置了FOR循環(huán)。而include語(yǔ)句,
是什么時(shí)候執(zhí)行到了,什么把指定文件的內(nèi)容代進(jìn)來(lái),繼續(xù)執(zhí)行。
所以,如果每次執(zhí)行代碼時(shí)想讀取不同的文件,或者有通過(guò)一組文件疊代的循環(huán),就使用 include(),因?yàn)榭梢越o想要包括的文件名設(shè)置一個(gè)變量,當(dāng)參數(shù)為include()
時(shí)使用這個(gè)變量。
3、
include在執(zhí)行時(shí),如果 include 進(jìn)來(lái)的文件發(fā)生錯(cuò)誤的話,不會(huì)立刻停止;而 require 則會(huì)立刻終止程序,不再往下執(zhí)行。
4、include可以用在循環(huán); require不行。
5、include有返回值,而require沒(méi)有(可能因?yàn)槿绱藃equire的速度比include快)
ok.php里的代碼為 echo "ok!";
$login = include('ok.php');
if(!empty($login)){ echo "文件包含成功";
}else{ echo "文件包含失敗"; }
最后返回結(jié)果為:ok!文件包含成功
只要ok.php里有語(yǔ)句存在,就會(huì)返回成功。
在舉一個(gè)例子:
1.php里的代碼如下:
<?php
return array(
'ILOVEYOU'=>1,2,3,4
);
?>
index.php里的代碼如下:
<?php
$a = array_change_key_case(include '1.php');
print_r($a);
?>
訪問(wèn)index.php的結(jié)果如下:
Array ( [iloveyou] => 1 [0] => 2 [1] => 3 [2] => 4 )
6、require的使用方法:這個(gè)函數(shù)通常放在 php 程序的最前面,php 程序在執(zhí)行前,就會(huì)先讀入 require 所指定引入的文件,使它變成 php 程序網(wǎng)頁(yè)的一部份。常
用的函數(shù),亦可以這個(gè)方法將它引入網(wǎng)頁(yè)中。
include使用方法:這個(gè)函數(shù)一般是放在流程控制的處理部分中。php 程序網(wǎng)頁(yè)在讀到 include 的文件時(shí),才將它讀進(jìn)來(lái)。這種方式,可以把程序執(zhí)行時(shí)的流程簡(jiǎn)單化
php技術(shù):php 中include()與require()的對(duì)比,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。