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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
解析php5配置使用pdo
Jul 03 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
destoon实现首页显示供应、企业、资讯条数的方法
Jul 15 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
Apr 22 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
深入浅出讲解:php的socket通信原理
Dec 03 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
实例讲解php实现多线程
Jan 27 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
php生成酷炫的四个字符验证码
2016/04/22 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
javascript Array对象基础知识小结
2010/11/16 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
python 实现归并排序算法
2012/06/05 Python
Python中zip()函数用法实例教程
2014/07/31 Python
Python编码爬坑指南(必看)
2016/06/10 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
2016/06/29 Python
Python 爬虫图片简单实现
2017/06/01 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
Python中常用的内置方法
2019/01/28 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
python创建文本文件的简单方法
2020/08/30 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
2014年母亲节寄语
2014/05/07 职场文书
自信主题班会
2015/08/14 职场文书
车位出租协议书范本
2016/03/19 职场文书
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技