require和include最根本的區(qū)別咙崎,其實(shí)就在錯(cuò)誤處理的方式不一樣
include优幸,當(dāng)引入的文件不存在時(shí),會(huì)顯示一個(gè)警告錯(cuò)誤褪猛,但是不影響其他代碼的執(zhí)行网杆。
require,當(dāng)引入的文件不存在時(shí)伊滋,會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤碳却,并且程序中斷執(zhí)行了。
實(shí)例分析
以下附上我的目錄文件結(jié)構(gòu)笑旺,就以下這兩個(gè)文件
include使用
在test文件中寫如下代碼
<?php
include 'code.php';
echo 'hello';
?>
運(yùn)行 http://localhost/test/test.php
如下正常輸出
如果寫了以下代碼的話
<?php
include 'code1.php';
echo 'hello';
?>
運(yùn)行時(shí)如下所示昼浦,會(huì)產(chǎn)生一個(gè)警告,但不會(huì)影響代碼的執(zhí)行
require使用
如果寫入如下代碼時(shí):
<?php
require 'code.php';
echo 'hello';
?>
運(yùn)行如下圖所示,正常輸出
如果寫人以下代碼時(shí)
<?php
require 'code1.php';
echo 'hello';
?>
運(yùn)行時(shí)如下圖所示筒主,會(huì)產(chǎn)生一個(gè)fatal error 錯(cuò)誤座柱,php執(zhí)行結(jié)束迷帜,不再執(zhí)行
include_once使用
include_once和include用法基本相同,唯一不同的是色洞,使用include_once會(huì)提前檢查導(dǎo)入的檔案是不是已經(jīng)在程序中的其他地方導(dǎo)入過了戏锹,導(dǎo)入過的話,就不再導(dǎo)入火诸。這個(gè)可以避免重復(fù)定義相同函數(shù)名的錯(cuò)誤锦针,require_once類似 include_once
如下圖所示
code.php文件
<?php
function ge(){
echo "11";
}
?>
test.php文件
<?php
include 'code.php';
include 'code.php';
echo "hello";
?>
運(yùn)行 http://localhost/test/test.php
會(huì)報(bào)錯(cuò),因?yàn)橹貜?fù)導(dǎo)入文件置蜀,導(dǎo)致 有了兩個(gè)相同的函數(shù) ge()奈搜,故產(chǎn)生錯(cuò)誤
當(dāng)把include 換成 include_oncde 的時(shí)候
<?php
include 'code.php';
include_once 'code.php';
echo "hello";
?>
運(yùn)行看看,正常輸出
以上就是我對(duì) include盯荤、require馋吗、include_once、require_once 的總結(jié)秋秤,如有錯(cuò)誤宏粤,還望指正。