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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
php addslashes 利用递归实现使用反斜线引用字符串
Aug 05 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
Dec 29 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
php验证码生成器
May 24 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
Apr 16 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
python模拟鼠标拖动操作的方法
2015/03/11 Python
在Python中使用lambda高效操作列表的教程
2015/04/24 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
python获取交互式ssh shell的方法
2019/02/14 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
车间调度岗位职责
2013/11/30 职场文书
实习鉴定评语
2014/01/19 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
《七月的天山》教学反思
2016/02/19 职场文书