include与require的区别

来源:互联网 发布:淘宝网是b2c还是c2c 编辑:程序博客网 时间:2024/04/30 09:36

很多人都知道include和require是引用外部文件的语言。可是它们的区别是什么呢?
1、对于错误的处理不同。
  include遇到错误时(引用的文件不存在),PHP只是报错,但程序会继续运行下去。
  require遇到错误时,直接报错并停止运行程序。
2、程序的处理不同。
  require相当于预处理,即它是在程序运行之前就被执行的。所以它是不可以用在控制语句中的,如if中。如果不好理解看完下面的include,对比一下就清楚了。
include相当于函数,它是在程序运行时执行的。所以它可以用在控制语句中。比如下面的代码:
if(1 > 0){
  include 'config.php';
}else{
  include 'setting.php';
}

这段代码运行的时候,config.php这个文件会被引用。而setting.php不会。
类似的代码:
if(1 > 0){
  require 'config.php';
}else{
  require 'setting.php';
}

上面这部分代码,config.php及setting.php都会被引用。因为在没有运行到if这个控制语句前,两个require语句都运行了。


Tip:使用require和include要注意如果重复引用一个文件的时候,而这个文件里头又有函数定义的话就会报错。

Fatal error: Cannot redeclare  ...

所以要在文件里面判断一下这个函数是否存在,可以使用function_exists('函数名')
原创粉丝点击