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. js进行MD5加密(含中文),与后台JAVA加密之后结果不同(解决)

    开发小程序过程中与后台进行接口沟通,前期接口经过MD5加密和AES加密之后,后台进行解密. 今天出现一种情况,我前台加密之后的md5串与后台加密不同,后台发现可能是带用中文的原因, 这是加密之前的串: ...

  2. JVM探究之 —— 类加载过程

    1. 类加载是什么 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 与那些在编译时需要进行连 ...

  3. Metasploit使用内网跳板, 扫描局域网主机

    最近,拿到一台内网机器, 苦于无法使用nmap扫描改主机的内网, 所以才有此文 在跳板机子获取一定权限后,需要积极的向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的meter ...

  4. .Net Core 3.0 Api json web token 中间件签权验证和 Cors 中间件处理跨域请求

    第一步:在Nuget上安装"Microsoft.AspNet.WebApi.Cors"包,并对api controller使用[EnableCors]特性以及Microsoft.A ...

  5. Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法

    转: Eclipse中引入com.sun.image.codec.jpeg包报错的完美解决办法  更新时间:2018年02月14日 17:13:03   投稿:wdc   我要评论   Java开发中 ...

  6. 【454】ML-DL相关链接

    GD(梯度下降)和SGD(随机梯度下降) 机器学习中的Bias和Variance 机器学习之判别式模型和生成式模型 笔记 | 什么是Cross Entropy

  7. shell基础知识6-在不按回车键的情况下读入N个字符

    Bash命令 read 能够从键盘或标准输入中读取文本.我们可以使用 read 以交互的形式读取用 户输入,不过 read 能做的可远不止这些.编程语言的大多数输入库都是从键盘读取输入,当回 车键按下 ...

  8. &和&&的区别?

    &运算符有两种用法:(1)按位与:(2)逻辑与.&&运算符是短路与运算.逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是tr ...

  9. mysql 8.0下的SELECT list is not in GROUP BY clause and contains nonaggregated column

    mysql的版本 mysql> select version();+-----------+| version() |+-----------+| 8.0.12 |+-----------+ 在 ...

  10. 有关dfs、bfs解决迷宫问题的个人见解

    可以使用BFS或者DFS方法解决的迷宫问题! 题目如下: kotori在一个n*m迷宫里,迷宫的最外层被岩浆淹没,无法涉足,迷宫内有k个出口.kotori只能上下左右四个方向移动.她想知道有多少出口是 ...