php - 使用 include-path 定义全局变量

标签 php path include require

在我的 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/

相关文章:

reactjs - React Router 多个参数不起作用

c++ - Makefile 不使用包含/库路径?

php - PHP 包含需要 HTML 和正文标记吗?

php - Yii2 GridView 排序

php - 使用 PHP 将 SQL 表导出为 CSV 格式

python - ntpath真的能解析类linux路径吗?

android - Android Studio 使用的默认 Android SDK 路径是什么?

c - 如何获得复杂的 C 预处理器行为以简化动态程序汇编

javascript - AJAX 加载后创建可共享链接

php - MySQL 错误 : 1064