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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
php学习之流程控制实现代码
Jun 09 PHP
discuz程序的PHP加密函数原理分析
Aug 05 PHP
php中把美国时间转为北京时间的自定义函数分享
Jul 28 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
php实现购物车功能(下)
Jan 05 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
Dec 08 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 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教程 预定义变量
2009/10/23 PHP
php HTML无刷新提交表单
2016/04/05 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
python实用代码片段收集贴
2015/06/03 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python模块常用用法实例详解
2019/10/17 Python
django自定义模板标签过程解析
2019/12/14 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
爱之链教学反思
2014/04/30 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
车贷收入证明范本
2014/09/14 职场文书
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis