php require_once 文件路径中的变量

Posted

技术标签:

【中文标题】php require_once 文件路径中的变量【英文标题】:Variable in php require_once file path 【发布时间】: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';

谢谢。

【问题讨论】:

【参考方案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';

【讨论】:

以上是关于php require_once 文件路径中的变量的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 类构造中的Require_once

Require_once 外部变量并与 php 类中的其他函数共享

如何在 PHP 的 require_once 中指定文件系统绝对路径?

php中的路径问题

使用 require_once 的路径错误

php require_once windows和linux之间的路径差异