php 中include()与require()的对比


Posted in PHP onOctober 09, 2006

php的require()与include(),在性能方面并无大的不同。

仅有的一些不同在于:

include()执行时文件每次都要进行读取和评估;
require()执行时文件只处理一次(实际上,文件内容替换了require()语句)。
即如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。

另外,如果每次执行代码时要读取不同的文件,或有通过一组文件叠代的循环,就应该使用include(),因为可以给想要包括的文件名设置一个变量,当参数为include()时使用这个变量。

php的require()性能与include()虽然有相似的地方,但是通过自己的学习和查找,还是找到了6点区别如下。

1、
不同之处在于,对include()来说,在include()执行时文件每次都要进行读取和评估;
而对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。
这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。

2、
require是只执行一次的,不,这么说不恰当。应当说,require是先替代,将指定文件的内容代进来,再运行,所以它不知道你是否设置了FOR循环。而include语句,

是什么时候执行到了,什么把指定文件的内容代进来,继续执行。
所以,如果每次执行代码时想读取不同的文件,或者有通过一组文件叠代的循环,就使用 include(),因为可以给想要包括的文件名设置一个变量,当参数为include()

时使用这个变量。

3、
include在执行时,如果 include 进来的文件发生错误的话,不会立刻停止;而 require 则会立刻终止程序,不再往下执行。

4、include可以用在循环; require不行。

5、include有返回值,而require没有(可能因为如此require的速度比include快)

ok.php里的代码为 echo "ok!";

$login = include('ok.php');
if(!empty($login)){ echo "文件包含成功";
}else{ echo "文件包含失败"; }

最后返回结果为:ok!文件包含成功

只要ok.php里有语句存在,就会返回成功。

在举一个例子:

1.php里的代码如下:
<?php
return array(
'ILOVEYOU'=>1,2,3,4
);
?>

index.php里的代码如下:
<?php
$a = array_change_key_case(include '1.php');

print_r($a);
?>

访问index.php的结果如下:
Array ( [iloveyou] => 1 [0] => 2 [1] => 3 [2] => 4 )

6、require的使用方法:这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常

用的函数,亦可以这个方法将它引入网页中。
include使用方法:这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化

PHP 相关文章推荐
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
PHP number_format() 函数定义和用法
Jun 01 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
Windows7下的php环境配置教程
Feb 28 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
php PDO实现的事务回滚示例
Mar 23 PHP
PHP延迟静态绑定的深入讲解
Apr 02 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 PHP
php生成WAP页面
Oct 09 #PHP
让你同时上传 1000 个文件 (一)
Oct 09 #PHP
让你同时上传 1000 个文件 (二)
Oct 09 #PHP
一个可以删除字符串中HTML标记的PHP函数
Oct 09 #PHP
利用static实现表格的颜色隔行显示
Oct 09 #PHP
PHP 和 XML: 使用expat函数(三)
Oct 09 #PHP
PHP 和 XML: 使用expat函数(二)
Oct 09 #PHP
You might like
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
收集的php编写大型网站问题集
2007/03/06 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php中stream(流)的用法
2014/03/25 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
js 操作select相关方法函数
2009/12/06 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
理解AngularJs指令
2015/12/10 Javascript
bootstrap-treeview自定义双击事件实现方法
2016/01/09 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
Python按钮的响应事件详解
2019/03/04 Python
python命令行参数用法实例分析
2019/06/25 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python守护进程实现过程详解
2020/02/10 Python
幼儿园元旦亲子活动方案
2014/02/17 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
旷课检讨书
2015/01/26 职场文书
2015年技术员工作总结
2015/04/10 职场文书
导游词之太湖
2019/10/08 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL