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 相关文章推荐
使用Apache的rewrite技术
Jun 22 PHP
实现“上一页”和“下一页按钮
Oct 09 PHP
php中session_unset与session_destroy的区别分析
Jun 16 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
基于PHP静态类的原罪详解
May 06 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
Jun 17 PHP
如何实现php图片等比例缩放
Jul 28 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
php中的登陆login实例代码
2016/06/20 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
Javascript select下拉框操作常用方法
2009/11/09 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
javascript 弹出层组件(升级版)
2011/05/12 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
python 写一个性能测试工具(一)
2020/10/24 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
中学图书馆工作总结
2015/08/11 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python