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 相关文章推荐
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
Sep 30 PHP
php 的多进程操作实践案例分析
Feb 28 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
漂亮但不安全的CTB
2006/10/09 PHP
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
杏林同学录(一)
2006/10/09 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
全面了解JavaScript的作用域链
2019/04/03 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
2020/03/04 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
Python 迭代器与生成器实例详解
2017/05/18 Python
Linux下python3.7.0安装教程
2018/07/30 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
大三学生入党思想汇报
2014/01/02 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
2015年信访工作总结
2015/04/07 职场文书
学生通报表扬范文
2015/05/04 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js