注册 登陆

    2020-06-04 10:20:14include和require的区别

    您现在的位置是: 首页 >  php >  include和require的区别

    一直对include和require的使用,知道一个大概,没有深究他们的区别,还有include_once,require_once的使用,区别一直很模糊,今天专门找时间来对比下。使用的是

    php 7.3.4版本。

    1. 首先在同目录test.php文件简单的输出 “echo 6;”

    include './test.php';
    require './test.php';


    include_once './test.php';
    require_once './test.php';

    结果如下:


    如果将_once引入放在include和require前面,会输出三个6。

    即include和require指定引入的文件,_once表示只引入一次,前面已经引入过,则不再引入。

    2. 加载失败的处理方式


    总结:include引入文件不存在,报warning错误,是可以程序屏蔽错误继续执行的;require引入文件不存在,会报致命错误,程序无法再执行下去。

    3. 是否有条件包含函数

    if (false) {
    include 'test.php';
    }
    if (false) {
    require_once 'test.php';
    }

    有听人说过require是无条件包含函数,测试了php7,require也是无条件包含函数,切换php版本到5.6,require也是无条件包含函数。总结 include和require都是有条件包含函数

    4. 是否有返回值

    $res = include 'test.php';
    var_dump($res);

    $r = require_once 'test.php';
    var_dump($r);

    听过有人说require引入没有返回值,这边测试include和require都有返回值。


    include()执行时需要引用的文件每次都要进行读取和评估,
    require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句)

    可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,
    若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(),

    require通常使用方法,这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。

    include通常使用方法,这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化

    另外关于include和require后面是否加括号的问题,

    理论上来说:include和require后面加不加括号对执行结果没有区别,但是加上括号效率较低,所以后面能不加括号就不加括号

关键字词: include和require的区别

0