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 相关文章推荐
加强版phplib的DB类
Mar 31 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
深入php list()函数的详解
Jun 05 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
如何使用PHP给图片加水印
Oct 12 PHP
PHP中include和require的区别实例分析
May 07 PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
详解thinkphp的Auth类认证
May 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
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
PHP new static 和 new self详解
2017/02/19 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JavaScript中的闭包
2016/02/24 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
Django添加feeds功能的示例
2018/08/07 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
python绘制彩虹图
2019/12/16 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
园林设计专业毕业生求职信
2014/03/23 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
情况说明书格式及范文
2019/06/24 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
详解pytorch创建tensor函数
2022/03/22 Python