一个例子简要说明include和require的区别

先编辑command.php文件php

echo 'hello'.PHP_EOL;

而后编辑console.php文件bash

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

本来想要包含并执行这个echo,没想到写错了文件名,若是是require,会报出这样的错误:ui

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';
}

会报出这样的错误:blog

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,只要包含路径正确,那么循环只执行一次。io

总结:console

使用require,若是文件没有包含成功,就会报出一个fatal error,整个程序就停止了。class

使用include,若是文件没有包含成功,就会报出一个普通的warning,以后的代码仍会执行。require

若是你的Web程序使用了MVC这种对文件包含强依赖的设计方法,请使用require_once。stream

相关文章
相关标签/搜索