美文网首页
PHP 的 include require include/re

PHP 的 include require include/re

作者: 无故下架内容so账号已弃用 | 来源:发表于2019-04-22 23:46 被阅读0次

includerequire : 语句包含并运行指定文件

requireinclude 几乎完全一样,除了处理失败的方式不同之外。
require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止;
include 只产生警告(E_WARNING),脚本会继续运行。

看下具体的实例来理解:

目录大概长这样子

// 目录
├── Demo
│   ├── index.php
│   ├── utils
│   │   ├── a.php
│   │   ├── b.php

a.php 的内容

// a.php
<?php
    function func_a () {
        echo '这是 a.php 里面的 func_a 方法';
    }

b.php 的内容:

// b.php
<?php
    function func_b () {
        echo '这是 b.php 里面的 func_b 方法';
    }

index.php 通过 include 和 require 分别来引用 a.php 和 b.php :

<?php
    include('utils/a.php');
    func_a(); // => 这是 a.php 里面的 func_a 方法

    echo '<br />';

    require('utils/b.php');
    func_b(); // => 这是 b.php 里面的 func_b 方法

正确的引用了文件并执行了文件内的方法:

接下来看下通过引用不存在的文件会有如何反应:

<?php
    include('utils/c.php'); // Warning: include(utils/c.php): 吧啦吧啦...
    include('utils/b.php');
    func_b(); // => 这是 b.php 里面的 func_b 方法


    echo '<br />';

    require('utils/d.php'); // Fatal error: require():  吧啦吧啦...
    require('utils/a.php'); // 不执行
    func_a(); // 不执行

情况就是:
require 在出错时将导致脚本中止;
include 只产生警告,脚本会继续运行。

include_oncerequire_once: 语句在脚本执行期间包含并运行指定文件, 和没有 _once 区别 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含

include_once 可以用于在脚本执行期间同一个文件有可能被包含超过一次的情况下,想确保它只被包含一次以避免函数重定义,变量重新赋值等问题。

<?php
    include('utils/a.php');
    include_once('utils/a.php');
    include_once('utils/a.php');
    func_a(); // => 这是 a.php 里面的 func_a 方法

    echo '<br />';

    require('utils/b.php');
    require_once('utils/b.php');
    require_once('utils/b.php');
    func_b(); // => 这是 b.php 里面的 func_b 方法

    include('utils/a.php'); //=> Fatal error ...
    
    require('utils/b.php'); // 不执行

就像代码中一样, *_once 会检查 会检查该文件是否已经被包含过, 而没有 _once 则会抛出警告或者错误

相关文章

网友评论

      本文标题:PHP 的 include require include/re

      本文链接:https://www.haomeiwen.com/subject/gwosgqtx.html