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 之Section与Cookie使用总结
Sep 14 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
Linux下PHP连接Oracle数据库
Aug 20 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
JS模式之简单的订阅者和发布者模式完整实例
2015/06/30 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中的引用和拷贝浅析
2014/11/22 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
房产公证书格式
2015/01/26 职场文书
环保宣传语大全
2015/07/13 职场文书
电力培训学习心得体会
2016/01/11 职场文书