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 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
PHP 全角转半角实现代码
May 16 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
php array_udiff_assoc 计算两个数组的差集实例
Nov 12 PHP
PHP ADODB实现事务处理功能示例
May 25 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
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
php对数组排序的简单实例
2013/12/25 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
动态加载js的几种方法
2006/10/23 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
Json解析的方法小结
2016/06/22 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
利用python在excel中画图的实现方法
2020/03/17 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
机械专业个人求职自荐信格式
2013/09/21 职场文书
半年思想汇报
2013/12/30 职场文书
爱情保证书范文
2014/02/01 职场文书
学生鉴定评语大全
2014/05/05 职场文书
2014年政工师工作总结
2014/12/18 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
酒店员工管理制度
2015/08/05 职场文书
工程移交协议书
2016/03/24 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书