当前位置: 首页 > 编程日记 > 正文

include和require的区别

细节决定成败!

1.引用文件方式

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

2.是否有条件引用

在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代码将把文件somefile包含进文件里:
if($something){
require("somefile");
}
下面的这个有趣的例子充分说明了这两个函数之间的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}
在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}

3.报错

用例子来说话,写两个php文件,名字为test1.php  和test2.php,注意相同的目录中,不要存在一个名字是test999.php的文件。
test.php
<?PHP
include  (”test999.php”);
echo  “abc”;
?>

test2.php
<?PHP
require (”test999.php”)
echo  “abc”;
?>

浏览第一个文件,因为没有找到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引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

相关文章:

libsvm库简介及使用

libsvm是基于支持向量机(support vector machine, SVM)实现的开源库&#xff0c;由台湾大学林智仁(Chih-Jen Lin)教授等开发&#xff0c;它主要用于分类(支持二分类和多分类)和回归。它的License是BSD-3-Clause&#xff0c;最新发布版本是v322。libsvm具有操作简单、易于使用、…

Cron 表达式极速参考

Cron表达式&#xff1a; * * * * * * *这些星号由左到右按顺序代表 &#xff1a; [秒] [分] [小时] [日] [月] [周] [年] 序号说明 是否必填 允许填写的值 允许的通配符1 秒 是 0-59 , - * /2 分 是 0-59…

刘群:华为诺亚方舟NLP预训练模型工作的研究与应用 | AI ProCon 2019

演讲嘉宾 | 刘群&#xff08;华为诺亚方舟实验首席科学家&#xff09;编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;预训练语言模型对自然语言处理领域产生了非常大的影响&#xff0c;在近期由CSDN主办的 AI ProCon 2019 上&#xff0c;自然…

NuGet 无法连接到远程服务器-解决方法

一、 Entity Framework以下简称EF 安装EF4.3的步骤是首先安装VS扩展 NuGet&#xff0c;然后再使用NuGet安装EF程序包 安装完NuGet就可以安装EF了&#xff0c;有两种方式可以安装EF&#xff1a; 1.使用命令 install-package EntityFramework -Pre 但出现如下错误: 2.使用可视化工…

Facebook开源模型可解释库Captum,这次改模型有依据了

作者 | Narine Kokhlikyan, Vivek Miglani, Edward Wang, Orion Reblitz-Richardson译者 | Rachel出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】前脚 TF 2.0 刚发布&#xff0c;在 PyTorch 开发者大会首日也携 PyTorch1.3 版本而来。除此之外&a…

K-最近邻法(KNN)简介

K-最近邻法(K-Nearest Neighbor, KNN)最初由Cover和Hart于1968年提出&#xff0c;是一个在理论上比较成熟的分类算法。KNN是一类可用于分类或回归的技术。作为一个非参数学习算法&#xff0c;K-最近邻并不局限于固定数目的参数。我们通常认为K-最近邻算法没有任何参数&#xff…

demo17 clean-webpack-plugin (清除模式)

1.为什么需要自动清除 dist 文件夹 在之前的 demo 中&#xff0c;webpack 打包后会在根目录下自动创建 dist 目录&#xff0c;并且把生成的文件输出到 dist 下。 当配置的输出包名含有 [hash] 时&#xff0c;hash值会随着文件内容的改变而改变。 因此&#xff0c;我们需要在下一…

c语言-01背包问题

01背包问题 问题&#xff1a;有N件物品和一个容量为V的背包。第i件物品的费用是c[i]&#xff0c;价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 分析&#xff1a; 这是最基础的背包问题&#xff0c;特点是&#xff1a;每种物品仅有一件&#xff0c;可以选择放或不放。…

OpenCV3.3中 K-最近邻法(KNN)接口简介及使用

OpenCV 3.3中给出了K-最近邻(KNN)算法的实现&#xff0c;即cv::ml::Knearest类&#xff0c;此类的声明在include/opecv2/ml.hpp文件中&#xff0c;实现在modules/ml/src/knearest.cpp文件中。其中&#xff1a;(1)、cv::ml::Knearest类&#xff1a;继承自cv::ml::StateModel&…

华为于璠:新一代AI开源计算框架MindSpore的前世与今生 | AI ProCon 2019

演讲嘉宾 | 于璠&#xff08;华为MindSpore资深架构师&#xff09;编辑 | 刘静出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;9月&#xff0c;2019中国AI开发者大会&#xff08;AI ProCon 2019&#xff09;在北京举行。在AI开源技术专题中&#xff0c;华为MindSpore…

TCC分布式事务的实现原理

目录 一、写在前面 二、业务场景介绍 三、进一步思考 四、落地实现TCC分布式事务 (1)TCC实现阶段一&#xff1a;Try (2)TCC实现阶段二&#xff1a;Confirm (3)TCC实现阶段三&#xff1a;Cancel 五、总结与思考 一、写在前面 之前网上看到很多写分布式事务的文章&#xff0c;不过…

Brute Force算法介绍及C++实现

字符串的模式匹配操作可以通过Brute Force算法来实现。字符串匹配操作即是查看S串(目标串或主串)中是否含有T串(模式串或子串)&#xff0c;如果在主串中查找到了子串&#xff0c;则模式匹配成功&#xff0c;返回模式串中的第一个字符在主串中的位置&#xff1b;如果未找到&…

使用Go内置库实现简易httpbin功能

简介 通过学习「Go语言圣经」的入门部分&#xff0c;了解到 go 内置库里提供了一个简单的 http 功能。于是想模拟下httpbin[1]的 get 方法显示 header 头信息的功能来练手。 本人 Go 初学小白&#xff0c;为了练习只是简单的实现了请求 header 的 JSON 格式展示&#xff0c;跟 …

Google图嵌入工业界最新大招,高效解决训练大规模深度图卷积神经网络问题

导读&#xff1a;本文主要介绍Google发表在KDD 2019的图嵌入工业界最新论文&#xff0c;提出Cluster-GCN&#xff0c;高效解决工业界训练大规模深度图卷积神经网络问题&#xff0c;性能大幅提升基础上依靠可训练更深层网络达到SOTA效果&#xff0c;并开源了源代码。作者 | yyl4…

经典树型表结构之SORT_NO

为什么80%的码农都做不了架构师&#xff1f;>>> 在以下情况需要对经典树型表的sort_no进行重排序&#xff1a;1、插入节点&#xff08;插入子树&#xff09;&#xff0c;需调整节点后所有sort_no;2、删除节点&#xff08;删除子树&#xff09;&#xff0c;需调整节…

Ubuntu14.04上安装TensorRT 2.1操作步骤

在Ubuntu14.04 上安装TensorRT2.1有两种方法&#xff1a;(1)、通过.deb直接安装&#xff1b;(2)、通过Tar文件安装。这里通过Tar文件安装。安装步骤&#xff1a;1. 安装CUDA 8.0&#xff0c;可参考&#xff1a; http://blog.csdn.net/fengbingchun/article/details/53840684 ;…

学会这门编程知识,可能决定你能进什么样的企业

对于程序员来讲&#xff0c;很多技术真正掌握之后&#xff0c;都能影响甚至说改变一个人的命运&#xff0c;比如&#xff1a;python、AI、DL、算法等等&#xff0c;但是如果只让你选择其中的一项基础知识&#xff0c;你会选择哪个呢&#xff1f;如果是我&#xff0c; 我会选——…

雷林鹏分享:MySQL 及 SQL 注入

MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库&#xff0c;那么就有可能发生SQL注入安全的问题。 本章节将为大家介绍如何防止SQL注入&#xff0c;并通过脚本来过滤SQL中注入的字符。 所谓SQL注入&#xff0c;就是通过把SQL命令插入到Web表单递…

dedecms网站文章内容按自定义排序的方法

标签dede:arclist的排序是通过orderby来指定的&#xff0c;如下&#xff1a; {dede:arclist orderby’排序字段’ } {/dede:arclist} orderby’sortrank’ 文档排序方式 orderby’hot’ 或 orderby’click’ 表示按点击数排列 orderby’sortrank’ 或 orderby’pubdate’ 按…

有了这套模板,再不担心刷不动LeetCode了

&#xff08;图片下载自视觉中国&#xff09;作者 | 李威来源 | https://www.liwei.party/整理 | 五分钟学算法&#xff08;ID: CXYxiaowu&#xff09;正文下面的动画以 「力扣」第 704 题&#xff1a;二分查找 为例&#xff0c;展示了使用这个模板编写二分查找法的一般流程。b…

一线互联网技术:Java工程师架构知识系统化汇总,面完45K!

根据高端招聘平台100 offer发布的Java人才盘点报告&#xff0c;在过去的2018年&#xff0c;Java仍然是最流行、招聘供需量最大的技术语言。在此基础上&#xff0c;互联网行业针对 Java 开发的招聘需求&#xff0c;也是近年技术类岗位供需量最大&#xff0c;且变化最稳定的。企业…

C++中局部类的使用

类可以定义在某个函数的内部&#xff0c;我们称这样的类为局部类(local class)。局部类定义的类型只在定义它的作用域内可见。和嵌套类不同&#xff0c;局部类的成员受到严格控制。局部类的所有成员(包括函数在内)都必须完整定义在类的内部。因此&#xff0c;局部类的作用与嵌套…

按键驱动的恩恩怨怨之概述

转载请注明出处&#xff1a;http://blog.csdn.net/ruoyunliufeng/article/details/23946487 研究按键驱动已经有几天了&#xff0c;尽管是0基础的驱动&#xff0c;可是当中包括的知识确实不少。接下来的几篇文章我会分别从浅入深的分析按键驱动。希望能对大家有所帮助。因为屌…

C++中嵌套类的使用

一个类可以定义在另一个类的内部&#xff0c;前者称为嵌套类(nested class)或嵌套类型(nested type)。嵌套类常用于定义作为实现部分的类。嵌套类可用于隐藏实现细节。嵌套类是一个独立的类&#xff0c;与外层类基本没什么关系。特别是&#xff0c;外层类的对象和嵌套类的对象是…

挑战弱监督学习的三大热门问题 AutoWSL2019挑战赛正式开赛

AutoWSL2019作为11月17-19日亚洲机器学习大会&#xff08;ACML&#xff09;主会议竞赛单元之一&#xff0c;由第四范式、ChaLearn、RIKEN和微软联合举办&#xff0c;其中竞赛分享和颁奖将与大会WSL-Workshop共同举办。据悉&#xff0c;AutoWSL是继AutoCV、AutoCV2、AutoNLP、Au…

数据连接池的工作机制是什么?

以典型的数据库连接池为例&#xff1a; 首先普通的数据库访问是这样的&#xff1a;程序和数据库建立连接&#xff0c;发送数据操作的指令&#xff0c;完成后断开连接。等下一次请求的时候重复这个过程&#xff0c;即每个请求都需要和数据库建立连接和断开连接&#xff0c;这样当…

apkplug插件托管服务简化与简介-05

2019独角兽企业重金招聘Python工程师标准>>> 本文基于TuoClondService1.1.0讲解 apkplug插件托管服务是提供给开发者一个远程发布插件的管理平台&#xff0c;但v1.0.0版本接口调用有些复杂我们在v1.1.0版本中着重对其进行了简化 与封装&#xff0c;使开发者能更简…

SpringBoot-JPA入门

SpringBoot-JPA入门 JPA就是Spring集成了hibernate感觉。 注解&#xff0c;方法仓库&#xff08;顾名思义的方法&#xff0c;封装好了&#xff0c;还有自定义的方法&#xff09;。 案例: spring:datasource:url: jdbc:mysql://localhost:3306/springboot?useUnicodetrue&c…

PCA、LDA、MDS、LLE、TSNE等降维算法的Python实现

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】网上关于各种降维算法的资料参差不齐&#xff0c;但大部分不提供源代码。近日&#xff0c;有人在 GitHub 上整理了一些经典降维算法的 Demo(Python)集合&#xff0c;同时给出了参考资料的链接。PCA…

C++11中enum class的使用

枚举类型(enumeration)使我们可以将一组整型常量组织在一起。和类一样&#xff0c;每个枚举类型定义了一种新的类型。枚举属于字面值常量类型。 C包含两种枚举&#xff1a;限定作用域的和不限定作用域的。这里主要介绍限定作用域的。不限定作用域的使用可以参考&#xff1a; ht…