require 和 include 都是文件引入的常用用法。那他们有什么区别吗?

首先我们创建一个需要引入的文件叫做test.php,里面写上简单的一行代码:

echo "我是要被引入的文件";

再创建一个php文件,用include引入上面的test.php:

include 'test.php';

echo  "引入完成";

输出结果为:我是要被引入的文件引入完成。说明用include引入成功。

再来看一下用require引入的效果:

require "test.php";

echo  "引入完成";

输出结果为:我是要被引入的文件引入完成。说明用require引入成功。

两种引入方式在引用成功的情况下无任何区别,那么我们分别用两种不同方式引入一个不存在的文件呢?

//tests.php 是一个不存在的文件
include "tests.php"; echo "引入完成";

输出结果为:

可以发现,用include引入不存在的文件会出现warning警告错误,代码也会继续往下执行输出结果。

//tests.php是一个不存在的文件
require "tests.php"; echo "引入完成";

输出结果为:

用require引入不存在的文件后,系统报出了一个致命错误,代码也会停止向下执行。

以上,我们可以得出结论:

相同点:include和require 都能把另外一个文件包含到当前文件中。  不同点:使用include时,当包含的文件不存在时,系统会报出警告级别的错误,程序会继续往下执行。   使用require包含文件时,当包含的文件不存在时,系统会先报出警告级别的错误,接着又报一个致命级别的错误。程序将终止执行。

引入文件还有两个require_once 和 include_once 他们又有什么不同呢?

我们用require 和 require_once做个简单演示:

require_once "test.php";
require_once "test.php";
require_once "test.php";
require_once "test.php"; echo "引入完成";

还是引入正确的文件,多次引入,如果用require_once输出的结果是:我是要被引入的文件引入完成,可以看到引入多个相同的路径只出现一次结果。

require "test.php";
require "test.php";
require "test.php";
require "test.php"; echo "引入完成";

用require多次引入相同的路径,输出结果是:我是要被引入的文件我是要被引入的文件我是要被引入的文件我是要被引入的文件引入完成,可以看到引入多个相同的路径都执行了。

所以它们的区别就是:require 和 include 如果有相同的路径,都执行,require_once 和 include_once 如果有相同的路径只会执行一次

2019-07-24 require 和 include的区别的更多相关文章

  1. require和include的区别及自动加载的定义

    //引入文件//require与include的区别://include主要是指引入,如果引入的文件出现错误,则程序停止运行//require主要是指请求,如果请求的文件出现错误,则程序不受影响,继续 ...

  2. php中require与include的区别

    描述:require, include三者都是引入文件,其中require_once,include_once只引入一次,即之前引入过的就不再引入. include与require的区别: 加载失败的 ...

  3. require和include的区别

    require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require ...

  4. PHP中require和include的区别

    include()与require()的功能相同 include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是二者再用法上有区 ...

  5. PHP require和include的区别

    require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误 include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误. 以下为补充:1. include有 ...

  6. 【十九】require和include的区别

    1.require是一个函数,include是一个关键字 2.require是无返回值,include有返回值 3.include()会产生一个警告,而require()则导致一个致命的错误(出现错误 ...

  7. require 与 include 的区别

    require 的英文意思是 需要,有赖于.如果使用了这条语句,也就是告诉PHP内核,我这个程序需要这个文件,有赖于这个文件.或者通俗点儿讲就是:我要她!所以,PHP如果发现require参数中的文件 ...

  8. include,include_once,require,require_once的区别

    1.include,require在其被调用的位置处包含一个文件. 2.include_once,require_once函数的作用与include相同,不过它会首先验证是否已包含该文件.如果已经包含 ...

  9. 关于require,require_once,include和include_once的区别

    一.定义 require,require_once,include,include_once都属于PHP的关键字,也就是说它们实际都是PHP的语句,而不是函数,类似于print,echo一样,也是PH ...

随机推荐

  1. 后台启动es head,关闭shell后es head自动关闭

    后台启动head命令:grunt server & 注意:加上&虽然执行了后台启动,但还是有日志打印出来,使用ctrl+c可以退出.这时如果直接关闭shell, head进程就会终止 ...

  2. 关于最新版本的flutter在安卓打包的问题解决方法

    1.集成友盟push提示androidx版本号不一致,需在gradle文件中手动选择即可,如下 buildscript { repositories { google() jcenter() mave ...

  3. odoo开发笔记 -- docker容器打包到另一台服务器部署异常

    场景描述: odoo.conf文件指定了数据库配置,如果docker打包的时候,没注意,新环境启动该镜像,会导致并没有连接本地的数据库,如果你配置文件中的数据库地址,当前这台服务器也可以访问到,那么问 ...

  4. Python3基础 tuple 使用通配符*进行拆包 简单示例

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  5. 一个流行的网页动画JS库

    animejs https://animejs.com/ Anime.js (/ˈæn.ə.meɪ/) is a lightweight JavaScript animation library wi ...

  6. Nexus上传npm包

    1.创建npm仓库 私服仓库npm-hosted 代理仓库npm-proxy npm-group 创建成功 在工程的根目录下创建文件 .npmrc registry=http://xxx:8081/n ...

  7. RunTime总结:

    oc动态性, 运行时将代码转化为runtime的C代码 RunTime运行流程: 生成对应objc_msgSend方法 isa指针查看当前类有没有这个方法, 之后寻找父类, 每个方法SEL(方法选择器 ...

  8. laydate.render报错:日期格式不合法

    在使用laydate渲染日期时: laydate.render({ elem: '#day' }); 提示日期格式不合法 需要使用 too.dateType()来包装 <input type=& ...

  9. 部署TiDB集群

    架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ...

  10. 【Maven学习】定制库到Maven本地资源库

    目标:手工操作将一个jar安装到本地仓库 第一步:首先获取到jar包,可以是第三方的 也可以是自己创建的,放到本地任意目录 比如:joda-time-2.10.3,放到C:\jar\  目录下面 第二 ...