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


Posted in PHP onFebruary 14, 2017

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()会先检查目标文件的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。

6. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require。

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

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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
php部分常见问题总结
Mar 27 PHP
php session处理的定制
Mar 16 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
windows系统php环境安装swoole具体步骤
Mar 04 PHP
php中的抽象方法和抽象类
Feb 14 #PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 #PHP
PHP静态成员变量
Feb 14 #PHP
php中序列化与反序列化详解
Feb 13 #PHP
PHP最常用的正则表达式
Feb 13 #PHP
PHP面相对象中的重载与重写
Feb 13 #PHP
PHP中overload与override的区别
Feb 13 #PHP
You might like
Yii扩展组件编写方法实例分析
2015/06/29 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
深入理解Python装饰器
2016/07/27 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
python 多线程串行和并行的实例
2019/02/22 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
C/C++程序员常见面试题二
2015/11/19 面试题
Ajax和javascript的区别
2013/07/20 面试题
护理专业毕业生自我鉴定
2013/10/08 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
商场促销活动方案
2014/02/08 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
孝女彩金观后感
2015/06/10 职场文书
员工聘用合同范本
2015/09/21 职场文书
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
python画条形图的具体代码
2022/04/20 Python