博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中include和require的区别
阅读量:5037 次
发布时间:2019-06-12

本文共 1809 字,大约阅读时间需要 6 分钟。

再次温习一下,也找到一篇比较全面的文章,原文地址:

现,贴在此处,有三个方面。

1.引用文件方式

对 include()来说,在include()执行时文件每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换 了require()语句)。这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。另一方面,如果每次执 行代码时相读取不同的文件,或者有通过一组文件叠代的循环,就使用include(),因为可以给想要包括的文件名设置一个变量,当参数为 include()时使用这个变量。

 

2.是否有条件引用

 

在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:

1 if($something){2 include("somefile");3 }

但不管$something取何值,下面的代码将把文件somefile包含进文件里:

1 if($something){2 require("somefile");3 }

下面的这个有趣的例子充分说明了这两个函数之间的不同。

1 $i = 1;2 while ($i < 3) {3 require("somefile.$i");4 $i++;5 }

在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():

1 $i = 1;2 while ($i < 3) {3 include("somefile.$i");4 $i++;5 }

3.报错

 用例子来说话,写两个php文件,名字为test1.php  和test2.php,注意相同的目录中,不要存在一个名字是test999.php的文件。

1 test.php 2 
6 7 test2.php 8

浏览第一个文件,因为没有找到test999.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:

Warning: include(test1aaa.php) [function.include]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Warning: include() [function.include]: Failed opening ‘test1aaa.php’ for inclusion (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2

abc

浏览第二个文件,因为没有找到test999.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:

Warning: require(test1aaa.php) [function.require]: failed to open stream: No such file or directory in D:\WebSite\test.php on line 2

Fatal error: require() [function.require]: Failed opening required ‘test1aaa.php’ (include_path=’.;C:\php5\pear’) in D:\WebSite\test.php on line 2

现在就能很清楚的知道include和require的区别:include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码,require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

转载于:https://www.cnblogs.com/dyllen/archive/2013/03/08/2950826.html

你可能感兴趣的文章
leetcode 137. 只出现一次的数字 II(Single Number II)
查看>>
leetcode 1033. 移动石子直到连续(Moving Stones Until Consecutive)
查看>>
Yii2 运用 redis 服务
查看>>
git hub
查看>>
iOS 开发的一些效果 瀑布流
查看>>
JavaIO知识总结----温故才能知新02
查看>>
PHP中的可变参数函数和可选参数函数
查看>>
JAVA中使用JSONArray和JSONObject
查看>>
MeteoInfoLab脚本示例:FY-3A AOD HDF数据
查看>>
(原)剑指offer之栈和队列
查看>>
分布式版本管理工具 ———— 初识Git
查看>>
idea中配置TomCat
查看>>
wsgi的学习(1):什么是WSGI
查看>>
vue 的日期控件 简单实现
查看>>
Light Oj 1003
查看>>
在 ns2.35 添加ZRP 协议
查看>>
java乱码处理
查看>>
浅谈CSRF攻击方式
查看>>
6个用于大数据分析的最好工具
查看>>
分数取模
查看>>