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 相关文章推荐
如何限制访问者的ip(PHPBB的代码)
Oct 09 PHP
Banner程序
Oct 09 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
深入php self与$this的详解
Jun 08 PHP
php多重接口的实现方法
Jun 20 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
PHP使用xpath解析XML的方法详解
May 20 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
Oct 12 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 PHP
php判断数组是否为空的实例方法
May 10 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
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
php 可变函数使用小结
2018/06/12 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
Json和Jsonp理论实例代码详解
2013/11/15 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
对Python中画图时候的线类型详解
2019/07/07 Python
Flask配置Cors跨域的实现
2019/07/12 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
python如何保存文本文件
2020/06/07 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
高三高考决心书
2014/03/11 职场文书
中学校庆方案
2014/03/17 职场文书
军训口号
2014/06/13 职场文书
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL