阿萌的程序小屋

萌物控重度患者与您一起畅游技术与梦想的世界

PHP中include()与require()以及两者的_once()的区别简析

好久没写东西了,阿萌这次找了以前的笔记,摸了这一篇文章分享给大家,关于include()、require()、include_once()、require_once()的用法区别。

首先介绍下include()与require()这两个函数吧:

这两个函数的功能非常相似,都是在一个PHP文件中引入另一个PHP文件。也就是会获取inlude指定文件中存在的所有内容,复制到使用include语句的文件中。

在处理上的区别是,require()会在PHP程序执行前,就先读入require所指定的文件。而include()会放在流程控制的处理部分中,也就是当PHP执行到include文件时,才将指定的文件读入。

用通俗易懂的话说就是,include在用到的时候才加载,而require在一开始就加载了。

所以在运行机制上,require()的效率相较于include()会稍微高一些。但是也正因为这种特性,include可以应用到条件语句内执行,而require()因为在程序被执行前就先引入文件,所以即使设定了判断语句来执行require(),无论true还是false,都会被执行。

举个实际例子大家应该就能明白:

if($flag){
    require 'otherfile1.php';
    include 'otherfile2.php';
}
/*
 *无论变量flag 真假如何,otherfile1.php都会被执行。
 *而otherfile2.php则会根据flag的取值判断是否执行。
*/

$i=0;
while ($i < 3) {
    require "otherfile$i.php";
    include "otherfile$i.php";
    $i++;
}
/*
 *这里想要完成的是取otherfile0.php、otherfile1.php、otherfile2.php这三个文件。
 *但是require这里的语句只会执行一次取otherfile0.php文件。
 *而include则会正确的完成所需要的功能。
*/

因此,如果出现类似于随机调用,或者文件迭代的循环,则使用include()。

但其实这两个函数最大的区别在于错误处理方面,require()如果所引用的文件出现错误的话,那么程序会中断执行,并显示致命错误,而include()则不会中断,只是显示一个警告错误。

下面来介绍下include_once()、require_once():

两个函数的区别还是和上面所说的一样,这里说下加了once后和原来的函数的改变。

这两个函数会先检查目标文件的内容是不是在之前就已经导入过了,如果为真,那么久不会重复导入同样的内容,也就是相同的文件只会被导入一次。

最后,题外话,包含文件的函数省去了大量的工作,而且为结构化提供了方便,例如当你所有文件的头部都是一样内容的时候,则可以使用包含文件去处理,这样既省力又方便修改,在如今各个方面都能灵活运用到这项功能,可以多思考思考。

如有朋友感觉我的博文或代码有问题,愿能给予我宝贵的意见!Thanks

另注:转载请随意,但请带上本文地址,万分感谢。

http://www.wangmengyu.cn/?p=790

这就是真的真的是传说中的公告牌的说~~
暂且努力发展中~~

性别:男  年龄:20岁
现居:江苏  南京  浦口区
标语:萌即是一切