require和include的异同

来源:互联网 发布:xmind8破解补丁 mac 编辑:程序博客网 时间:2024/06/07 02:16
PHP中require和include基本的区别,其实在一般PHP开发中require和include这2个函数的功能大致相同,但是有一些区别,请看下文讲解。 
第一点:require()  和  include()  除了怎样处理失败之外在各方面都完全一样。include()  产生一个警告而  require()  则导致一个致命错误。换句话说,如果你想在丢失文件时停止处理页面,那就用require()  吧,它直接会中止脚本。而include()  就不是这样,脚本会继续运行,但是会抛出一个Notice级别的错误。同时也要确认设置了合适的include_path。  
就是说再解析程序时即读取require的文件,而不是解析后,如果不能读取到被require的文件,就不能进行下一步动作。所以,不被正确包含就会导致程序的文件,用require比较好。

第二点:require()  无论如何都会包含文件,而  include()  可以有选择地包含:
?
1
2
3
4
5
6
7
8
<?php 
if(FALSE){ 
   require('a.php'); 
if(FALSE){ 
   include('b.php'); 
?>
比如上面这段代码,a.php一定会被包含,而b.php一定不会被包含。require类似于一次预扫描,在程序执行时,无论在函数里或是函数外,都将先把require的文件执行,且只执行一次。而include则是每执行一次就调用一次文件,即这次执行后,下次再执行执行到这里,仍将再执行一次。大家应该明白这个区别了吧:)
同时可以看下require_once和include_once的区别。
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。

include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。

再谈include和require区别

include()和require()语句的不同在于它们如何处理错误。使用require ()调用文件错误时,将会停止整个程序,调用include()遇到相同的错误,则会生成警告并停止执行包含文件,跳出调用代码然后继续执行。前者行为更加激烈火,故require()和require_once()用于包含库文件时更加安全,而include ()和include_once()则适用加模析的操作。require()和require_once()都是语句而不是函数。这意味着使用它们的时候可以省略括号

转载来自:http://www.2cto.com/kf/201601/457491.html