在我的 php 项目中,我想确保代码保持可移植性和服务器独立性。
所以我添加了一个“config.php”,我将其包含在每个 php 文件中,其中配置了多个 config-var。
我把它包含在
include_once('config.php');
我的问题是,此 config.php 中的第一个变量是:
global $path;
$path = $_SERVER['DOCUMENT_ROOT'];
使所有包含/要求绝对且“可移植”。
这当然适用于 include_once('config.php'); 之后的所有 include。 - 但我怎样才能使这个特定的包含绝对?
我现在的“解决方案”是这段代码:
//set global path if not yet set
if(!isset($path)){
global $path;
$path = $_SERVER['DOCUMENT_ROOT'];
}
我会在每个 php 文件中添加它。
有没有更优雅的解决方案?谢谢!
最佳答案
另一种方法是,使用 $path 作为静态变量定义,如
define('PATH', $_SERVER['DOCUMENT_ROOT']);
然后你就可以像普通变量一样使用 PATH
echo 'directory: '.PATH;
变量区分大小写,使它们不区分大小写,以便您可以使用 PATH 或 path 或 Path .. 在末尾添加 true :
define('DOCROOT', $_SERVER['DOCUMENT_ROOT'], true);
我的一个常见用例是缩短 DIRECTORY_SEPARATOR:
define('DS', DIRECTORY_SEPARATOR, true);
问候,麦克斯
关于php - 使用 include-path 定义全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17442666/