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


Posted in PHP onMarch 10, 2010

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

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

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

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

以下为补充:

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

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

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

require(),include(),require_once()和include_once()区别

PHP 相关文章推荐
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
php 安全过滤函数代码
May 07 PHP
查找mysql字段中固定字符串并替换的几个方法
Sep 23 PHP
解析php防止form重复提交的方法
Jul 01 PHP
php define的第二个参数使用方法
Nov 04 PHP
php堆排序(heapsort)练习
Nov 13 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 PHP
浅谈laravel中的关联查询with的问题
Oct 10 PHP
PHP扩展编写点滴 技巧收集
Mar 09 #PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 #PHP
PHP 最大运行时间 max_execution_time修改方法
Mar 08 #PHP
php ss7.5的数据调用 (笔记)
Mar 08 #PHP
phpmyadmin 常用选项设置详解版
Mar 07 #PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 #PHP
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 #PHP
You might like
php格式化工具Beautify PHP小小BUG
2008/04/24 PHP
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
基于initPHP的框架介绍
2013/04/18 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
JS 常用校验函数
2009/03/26 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
python基于pyDes库实现des加密的方法
2017/04/29 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
中国梦主题教育活动总结
2014/05/05 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书