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下获取客户端ip地址的函数
Mar 15 PHP
zen cart新进商品的随机排序修改方法
Sep 10 PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 PHP
PHP中exec与system用法区别分析
Sep 22 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
PHP内核探索之变量
Dec 22 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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
第五节--克隆
2006/11/16 PHP
PHP生成月历代码
2007/06/14 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
接收键盘指令的脚本
2006/06/26 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
js字符串完全替换函数分享
2014/12/03 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
js编写简易的计算器
2020/07/29 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
[04:54]DOTA2-DPC中国联赛1月31日Recap集锦
2021/03/11 DOTA
python图像常规操作
2017/11/11 Python
Python实现AI换脸功能
2020/04/10 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
走近毛泽东观后感
2015/06/04 职场文书
2016年元旦寄语
2015/08/17 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python