【问题标题】:Can anyone tell what is the relation of include and require with magic constants in php?谁能告诉 PHP 中 include 和 require 与魔术常量的关系是什么?
【发布时间】:2018-02-08 09:15:48
【问题描述】:

我正在学习在 php.net 上包含和要求构造,并发现行 此规则的一个例外是魔术常量,在包含发生之前由解析器评估。在 @ 的第 7 段987654322@ 但不明白魔术常量与php中include和require的关系是什么。

谁能用简单易懂的话说出来?

我的问题可以给负分,但请务必回答,我想知道和学习,负分无所谓。

【问题讨论】:

    标签: php include require magic-constants


    【解决方案1】:

    在解析您的代码之前,解析器会解析所有 include 和 require,因此它可以像解析一个脚本一样解析它们。但是,在它解析这些之前,任何魔术常量,如 __DIR__ 都会被解析。

    一个例子:

    假设您有两个文件:

    file1.php

    <?php
    require __DIR__ . '/file2.php';
    
    echo 'Hello ' . $a;
    

    file2.php

    <?php
    $a = 'World';
    

    如您所见,其中有一个神奇的常数:__DIR__。该常量将返回我写入它的文件的绝对路径。所以解析首先解决:

    <?php
    require '/the-current-folder/file2.php';
    

    然后它实际上包括任何includerequire 所以它得到:

    <?php
    $a = 'World';
    
    echo 'Hello ' . $a;
    

    然后解析脚本:

    Hello World
    

    【讨论】:

    • 所以它只是意味着魔术常量在 include 和 require 之前被解析,哈?
    • 是的。就像它在你的问题中所说的那样:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2016-03-14
    相关资源
    最近更新 更多