PHP中的变量:require_once文件路径

3
如何将以下内容中的文件路径一部分作为变量进行替换?
require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/directory2/directory3/file.php';

我希望用变量$dir2代替directory2。但是仅仅插入变量并不能起到作用?

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

感谢您的选择。
4个回答

4

基本的php语法:使用'引用的字符串不会插值变量。应使用"引用的字符串代替:

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

或者使用字符串拼接:

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

2
在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)来定义根目录。


1

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接