PHP中include()与require()的区别说明(一)

墨初学习笔记990

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

include 使用方法如 include("xxx.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。

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

require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 

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

以下为补充:

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

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

3. irequire()的作用和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的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。 

以上内容来自网络,未完待续......

相关文章

CMS教程域名备案,解析,文件上传

今天说说大淘客CMS的一些事情。一般来说大淘客CMS属于一种小型的个人站点,麻雀虽小,但五脏俱全,对于一些没有接触过网站设计,网站运营的新手来说,难度还是很大的。今天我们说说大淘CMS建站的第二步伐,...

这是问斩的标题

这是问斩的标题

很多的网站,尤其是一些手机官网或某种产品的官网,都会把自己网站的页面中一些元素作得美观起来。比如一些产吕,在打开网页或网页下拉到产品图片的时候,图片就像活了一样动起来,很是有趣。今天介绍一款,让网页元...

javascript中的addLoadEvent函数解析

javascript中的addLoadEvent函数解析

onload事件是HTML DOM Event 对象的一个属性,又叫事件句柄(Event Handlers),它会在页面或图像加载完成后(注意是加载完成后)立即发生。window.onload = f...

jQuery中的jQuery.noConflict()函数说明

jQuery中的jQuery.noConflict()函数说明

在jQuery库中,几乎所有的插件都被限制在它的命名空间里,通常全局对象都被很好的储存在jQuery的命名空间里,当jQuery与其它的JavaSscript库使用时不会引起冲突一般情况下jQuery...

jQuery ajax()使用serialize()提交form数据

jQuery ajax()使用serialize()提交form数据

这几天一直在适配用户中心插件,基本的功能也差不多了,时间不长就会上线用户中心,当然适配的过程中也遇到不少的问题,今天记录一下。jQuery的serialize()方法通过序列化表单值,创建URL编码文...

HTML与XHTML的区别

HTML与XHTML的区别

对于标记语言而言,选用HTML还是XHTML是你的自由。重要的是不管选用的哪种文档类型,你使用的标记必须与你选用的DOCTYPE声明保持一致。就个人而言,我更喜欢使用XHTML规则,使用一个DOCTY...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。