PHP中include与require使用方法区别详解


Posted in PHP onOctober 19, 2013

在PHP变成中,include()与require()的功能相同,include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是二者再用法上有区别:(include()是有条件包含函数,而require()则是无条件包含函数)

1, 使用方式不同

(1) require 的使用方法如 require("requireFile.php"); 。这个函式通常放在 PHP 程式的最前面,PHP 程式在执行前,就会先读入 require 所指定引入的档案,使它变成 PHP 程式网页的一部份。常用的函式,亦可以这个方法将它引入网页中。引入是无条件的,发生在程序执行前,不管条件是否成立都要导入(可能不执行)。
(2) include 使用方法如 include("includeFile.php"); 。这个函式一般是放在流程控制的处理区段中。PHP 程式网页在读到 include 的档案时,才将它读进来。这种方式,可以把程式执行时的流程简单化。引入是有条件的,发生在程序执行时,只有条件成立时才导入(可以简化编译生成的代码)。

例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:

if($something){
include("somefile");
}

但不管$something取何值,下面的代码将把文件somefile包含进文件里:
if($something){
require("somefile");
}

下面的这个有趣的例子充分说明了这两个函数之间的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}

在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}

2. 执行时报错方式不同

include和require的区别:include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码,require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。例如下面例子:

 
写两个php文件,名字为test1.php  和test2.php,注意相同的目录中,不要存在一个名字是test3.php的文件。

test1.php

<?PHP
include  (”test3.php”);
echo  “abc”;
?>

test2.php
<?PHP
require (”test3.php”)
echo  “abc”;
?>

浏览第一个文件,因为没有找到test999.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:
Warning: include(test3.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Warning: include() [function.include]: Failed opening ‘test3.php' for inclusion (include_path='.;C:\php5\pear') in D:\WebSite\test.php on line 2
abc (下面的被执行了)

浏览第二个文件,因为没有找到test3.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:
Warning: require(test3.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test2.php on line 2

Fatal error: require() [function.require]: Failed opening required ‘test3.php' (include_path='.;C:\php5\pear') in D:\WebSite\test.php on line 2

下面的未被执行,直接结束
总之,include时执行时调用的,是一个过程行为,有条件的,而require是一个预置行为,无条件的。

PHP 相关文章推荐
在php中取得image按钮传递的name值
Oct 09 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php 计划任务 检测用户连接状态
Mar 29 PHP
PHP语法自动检查的Vim插件
Aug 11 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
php metaphone()函数的定义和用法
May 15 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
php之可变函数的实例详解
Sep 13 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
php文件上传的简单实例
Oct 19 #PHP
php上传文件,创建递归目录的实例代码
Oct 18 #PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 #PHP
10 个经典PHP函数
Oct 17 #PHP
php中怎么搜索相关联数组键值及获取之
Oct 17 #PHP
php class类的用法详细总结
Oct 17 #PHP
div li的多行多列 无刷新分页示例代码
Oct 16 #PHP
You might like
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
JS实现从网页顶部掉下弹出层效果的方法
2015/08/06 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
Python3解决棋盘覆盖问题的方法示例
2017/12/07 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
解决python运行启动报错问题
2020/06/01 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
优秀团干部个人事迹
2014/05/29 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
2014年酒店工作总结与计划
2014/11/17 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书