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 相关文章推荐
Content-type 的说明
Oct 09 PHP
PHP面向对象的使用教程 简单数据库连接
Nov 25 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
深入理解PHP内核(二)之SAPI探究
Nov 10 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
详解Laravel服务容器的绑定与解析
Nov 05 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
python实现FTP服务器服务的方法
2017/04/11 Python
Python 调用Java实例详解
2017/06/02 Python
python实现手机通讯录搜索功能
2018/02/22 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
python cookie反爬处理的实现
2020/11/01 Python
物业管理应届生求职信
2013/10/28 职场文书
趣味比赛活动方案
2014/02/15 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
《钱学森》听课反思
2014/03/01 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
少先队工作总结2015
2015/05/13 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
幼儿园教师教学反思
2016/03/02 职场文书