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分页类的代码
May 18 PHP
php数字转汉字代码(算法)
Oct 08 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
PHP进程同步代码实例
Feb 12 PHP
详解php的socket通信
Aug 11 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 PHP
PHP底层运行机制与工作原理详解
Jul 31 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中调用SVN命令更新网站方法
2015/01/07 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
PHP多维数组排序array详解
2017/11/21 PHP
jsPDF导出pdf示例
2014/05/02 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
python matplotlib拟合直线的实现
2019/11/19 Python
Python Lambda函数使用总结详解
2019/12/11 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
党校培训思想汇报
2013/12/30 职场文书
学生出入校管理制度
2014/01/16 职场文书
班组建设经验交流材料
2014/05/12 职场文书
本科生自荐信
2014/06/18 职场文书
绿色小区申报材料
2014/08/22 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server