一個例子簡要說明include和require的區別


先編輯command.php文件

echo 'hello'.PHP_EOL;

然后編輯console.php文件

for($i=1;$i<=3;++$i){
	require 'command1.php';
}

原本想要包含並執行這個echo,沒想到寫錯了文件名,如果是require,會報出這樣的錯誤:

Warning: require(command1.php): failed to open stream: No such file or directory in console.php on line 4

Fatal error: require(): Failed opening required 'command1.php' (include_path='.') in console.php on line 4
PHP Warning:  require(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Fatal error:  require(): Failed opening required 'command1.php' (include_path='.') in console.php on line 4

如果把require改為include

for($i=1;$i<=3;++$i){
	include 'command1.php';
}

會報出這樣的錯誤:

Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4

Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4

Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4

Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4

Warning: include(command1.php): failed to open stream: No such file or directory in console.php on line 4

Warning: include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4
PHP Warning:  include(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Warning:  include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4
PHP Warning:  include(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Warning:  include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4
PHP Warning:  include(command1.php): failed to open stream: No such file or directory in console.php on line 4
PHP Warning:  include(): Failed opening 'command1.php' for inclusion (include_path='.') in console.php on line 4

如果使用require_once或者include_once,只要包含路徑正確,那么循環只執行一次。

總結:

使用require,如果文件沒有包含成功,就會報出一個fatal error,整個程序就中止了。

使用include,如果文件沒有包含成功,就會報出一個普通的warning,之后的代碼仍會執行。

如果你的Web程序使用了MVC這種對文件包含強依賴的設計方法,請使用require_once。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM