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录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
PHP常用函数小技巧
Sep 11 PHP
php 自写函数代码 获取关键字 去超链接
Feb 08 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP register_shutdown_function函数的深入解析
Jun 03 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
Mar 29 PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 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
YII模块实现绑定二级域名的方法
2014/07/09 PHP
php邮件发送的两种方式
2020/04/28 PHP
php之可变函数的实例详解
2017/09/13 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现程序的单一实例用法分析
2015/06/03 Python
python学生信息管理系统(完整版)
2020/04/05 Python
Python中的元组介绍
2019/01/28 Python
Python中一个for循环循环多个变量的示例
2019/07/16 Python
django的model操作汇整详解
2019/07/26 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
有原因的手表:Flex Watches
2019/03/23 全球购物
实习生自我鉴定
2013/12/12 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
商超业务员岗位职责
2015/02/13 职场文书
美容院管理规章制度
2015/08/05 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
手写Spirit防抖函数underscore和节流函数lodash
2022/03/22 Javascript