require/include/include_once/require_once()的区别

来源:互联网 发布:淘宝有名的网红店 编辑:程序博客网 时间:2024/06/15 08:20

require()函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

include()函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单。他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。 

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


具体如下:

1. include有返回值,而require没有。include()包括并运行指定文件,在处理失败时include() 产生一个警告,被导入的程序代码都会被执行。你可以导入同一个服务器中的静态页面。 

2. include_once()的作用和include()是几乎相同。唯一的差别在于include_once()会先检查要导入的文件是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入(这项功能有时候很重要,比如要导入的文件有一些你自行定义好的函数,如果在同一个程序重复导入这个文件,在第二次导入的时候就会发生错误,因为PHP不允许相同名称的函数重复次定义两次)。 

3.require()会将目标文件的内容读入,并且把本身代换成这些读入的内容,在处理失败时require() 则导致一个致命错误。这个读入并且替换的动作是在PHP引擎编译代码时发生的,而不是发生在PHP引擎开始执行编译好的程序时

(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。

require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。 

4.如同include_once(),require_once()会先检查目标文件的内容是不是在之前已经导入过了;如果是,就不会再次重复导入同样的内容。 

6. require通常放在PHP程序的最前面,PHP程序在执行前,就会先读入require所引入的文件,使它变成PHP程序网页的一部份。常用的函数,亦可以用这个方法将它引入网页中。 

7. include一般是放在流程控制的处理部分,PHP程序网页在需要include的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。

原创粉丝点击