require與include區(qū)別
<?php
include 'no.php';
echo '123';
?>
這段代碼搜立,如果no.php文件不存在,首先會報錯槐秧,但是echo '123'這句是可以繼續(xù)執(zhí)行的
<?php
require 'no.php';
echo '123';
?>
然而這段代碼啄踊,如果no.php文件不存在,在require時就停止了刁标,echo '123'這句是不執(zhí)行的
總結(jié)一:在引入不存在的文件時颠通,include() 產(chǎn)生一個警告,而require() 則導(dǎo)致一個致命錯誤
if($something){
include("somefile");
}
變量$something為真膀懈,才會包含somefile文件
if($something){
require("somefile");
}
不管變量$something為真還是假顿锰,都會包含somefile文件
總結(jié)二:include()是有條件包含函數(shù),可以有選擇地包含启搂,而 require()則是無條件包含函數(shù)硼控,無論如何都會包含文件
總結(jié)三:require()語句的功能與include()相類似,都是包括并運(yùn)行指定文件胳赌。不同之處在于:對include()語句來說牢撼,在執(zhí)行文件時每次都要進(jìn)行讀取和評估;而對于require()來說疑苫,文件只處理一次(實際上浪默,文件內(nèi)容替換require()語句)。這就意味著如果可能執(zhí)行多次的代碼缀匕,則使用require()效率比較高。另外一方面碰逸,如果每次執(zhí)行代碼時是讀取不同的文件乡小,或者有通過一組文件迭代的循環(huán),就使用include()語句饵史。
include與include_once的區(qū)別(require與require_once區(qū)別)
<?php
require '1.php';
require '1.php';
?>
這種情況下1.php被包含兩次
<?php
require '1.php';
require_once '1.php';
?>
這種情況下满钟,第二次包含時,是不會進(jìn)行包含的
總結(jié):include_once (require_once)語句在執(zhí)行時會查詢一遍已加載文件列表胳喷,如果文件已存在湃番,則不會再次包含,include(require)則相反
include吭露、include_once吠撮、require、require_once抉擇問題
通常:include_once和require_once會有性能上的下降讲竿,因為他需要判斷之前是否包含過泥兰。一般情況下弄屡,不太需要去考慮
require通常使用方法:這個函數(shù)通常放在 PHP 程序的最前面,PHP 程序在執(zhí)行前鞋诗,就會先讀入 require 所指定引入的文件膀捷,使它變成 PHP 程序網(wǎng)頁的一部份。常用的函數(shù)削彬,亦可以這個方法將它引入網(wǎng)頁中全庸。
include通常使用方法:這個函數(shù)一般是放在流程控制的處理部分中。PHP 程序網(wǎng)頁在讀到 include 的文件時融痛,才將它讀進(jìn)來壶笼。這種方式,可以把程序執(zhí)行時的流程簡單化酌心。