php require和include差别

require 的用法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面。PHP 程序在运行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。

经常使用的函数,亦能够这种方法将它引入网页中。

include 用法如 include("MyIncludeFile.php"); 。这个函数通常是放在流程控制的处理部分中。

PHP 程序网页在读到 include 的文件时,才将它读进来。

这样的方式。能够把程序运行时的流程简单化。

他们两个的用途是全然一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的差别在于错误处理的方式不一样。 

require一个文件存在错误的话,那么程序就会中断运行了,并显示致命错误 
include一个文件存在错误的话,那么程序不会中端。而是继续运行,并显示一个警告错误。

 

下面为补充:

1. include有返回值,而require没有。 

2. include()包含并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被运行,并且这些程序在运行的时候会拥有和源文件里呼叫到include()语句的位置同样的变量范围。你能够导入同一个server中的静态页面。 

3. include_once()的作用和include()是差点儿同样的 
唯一的区别在于include_once()会先检查要导入的档案是不是已经在该程序中的其他地方被导入过了。假设有的话就不会再次反复导入(这项功能有时候是非常重要的,例如说要导入的里面宣告了一些你自行定义好的函数,那么假设在同一个程序反复导入这个文件。在第二次导入的时候便会错误发生讯息。由于PHP不同意同样名称的函数被反复宣告第二次)。 

4. require()会将目标文件的内容读入,而且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。 
这个读入而且代换的动作是在PHP引擎编译你的程序代码的时候发生的。而不是发生在PHP引擎開始运行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行运行一行。可是到了PHP 4.0以后就有所改变了。PHP 4.0是先把整个程序代码所有编译完毕后。再将这些编译好的程序代码一次运行完毕,在编译的过程中不会运行不论什么程序代码)。require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。 

5. 如同include_once()。require_once()会先检查目标文件的内容是不是在之前就已经导入过了,假设是的话,便不会再次反复导入相同的内容。

 

5. require是无条件包括也就是假设一个流程里增加require,不管条件成立与否都会先运行require。 

7. require通常放在PHP程序的最前面,PHP程序在运行前,就会先读入require所指定引入的文件,使它变成PHP程序网页的一部份。经常使用的函数。亦能够这种方法将它引入网页中。 

8. include通常是放在流程控制的处理部分中PHP程序网页在读到include的文件时。才将它读进来。

这样的方式能够把程序运行时的流程简单化。 

原文地址:https://www.cnblogs.com/cxchanpin/p/6913114.html