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 JSON 数据解析代码
May 26 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
关于php循环跳出的问题
Jul 01 PHP
php实现的RSS生成类实例
Apr 23 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 PHP
PHP实现倒计时功能
Nov 16 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分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
JavaScript模拟push
2016/03/06 Javascript
javascript模块化简单解析
2016/04/07 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
详谈Python基础之内置函数和递归
2017/06/21 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
python实现自动发送报警监控邮件
2018/06/21 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
python ubplot使用方法解析
2020/01/10 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Python将二维列表list的数据输出(TXT,Excel)
2020/04/23 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
面包店的创业计划书范文
2014/01/16 职场文书
股权转让协议书范本
2014/04/12 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
投标邀请书范本
2015/02/02 职场文书
语文教师个人工作总结
2015/02/06 职场文书
56句经典英文座右铭
2019/08/09 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS