【问题标题】:Variable in php require_once file pathphp require_once 文件路径中的变量
【发布时间】:2012-03-27 00:54:00
【问题描述】:

如何将文件路径的下面和替换部分作为变量?

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/directory2/directory3/file.php';

我想用变量 $dir2 替换 directory2。像下面这样简单地插入变量是不行的?

require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/$dir2/directory3/file.php';

谢谢。

【问题讨论】:

    标签: php require-once


    【解决方案1】:

    在 PHP 中有两种方法可以做到这一点。

    require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/'.$dir2.'/directory3/file.php';
    

    或者

    require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
    

    区别在于使用 ' 或 " 表示字符串。使用 ' 时,您需要像示例中那样连接变量,就像您已经使用 $_SERVER['DOCUMENT_ROOT'] 所做的那样。使用 " 时,您可以将变量放在字符串“原样”,甚至做这样的事情(对数组有用):

    require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/{$_SERVER["HTTP_HOST"]}/directory3/file.php";
    

    【讨论】:

      【解决方案2】:

      使用"会解析变量。

      "/directory1/$dir2/directory3/file.php"
      

      而不是依赖$_SERVER['DOCUMENT_ROOT'],您应该执行diranme(__FILE__)__DIR__ (>= 5.3) 之类的操作来定义根目录。

      【讨论】:

        【解决方案3】:

        单引号防止变量替换。使用双引号:

        require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
        

        【讨论】:

          【解决方案4】:

          基本 php 语法:用' 引用的字符串不插入变量。改用"-quoted 字符串:

          require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
                                                   ^---                                  ^---
          

          或使用字符串连接:

          require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/' . $dir2 . '/directory3/file.php';
          

          【讨论】:

            猜你喜欢
            • 2015-01-18
            • 2013-03-23
            • 2016-09-15
            • 2012-07-17
            • 2017-07-02
            • 2013-10-08
            • 2014-09-26
            • 2018-09-29
            • 2012-01-15
            相关资源
            最近更新 更多