首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用include-path定义全局变量

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

Stack Overflow用户
提问于 2013-07-03 15:59:37
回答 5查看 5.2K关注 0票数 4

在我的php项目中,我希望确保代码保持可移植性和独立于服务器。

因此,我在每个php文件中都添加了一个"config.php“,其中配置了几个config-var。

我将它包含在

代码语言:javascript
复制
include_once('config.php');

我的问题是,这个config.php中的第一个变量之一是:

代码语言:javascript
复制
global $path;
$path = $_SERVER['DOCUMENT_ROOT'];

要使所有内容都包含/需要绝对的和“可移植的”。

这当然适用于include_once(‘config.php’)之后的所有include;-但是我如何才能使这个特定的include绝对包含?

我现在的“解决方案”是这样的代码:

代码语言:javascript
复制
//set global path if not yet set
if(!isset($path)){
    global $path;
    $path = $_SERVER['DOCUMENT_ROOT'];
}

我会将其添加到每个php文件中。

有没有更优雅的解决方案?谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-03 16:25:40

另一种方法是使用$path作为静态变量定义,例如

代码语言:javascript
复制
define('PATH', $_SERVER['DOCUMENT_ROOT']);

然后,您就可以将路径用作普通变量

代码语言:javascript
复制
echo 'directory: '.PATH;

变量区分大小写,使它们不区分大小写,以便您可以使用PATH或path或Path。在结尾处添加true:

代码语言:javascript
复制
define('DOCROOT', $_SERVER['DOCUMENT_ROOT'], true); 

对我来说,一个常见的用例是缩短DIRECTORY_SEPARATOR:

代码语言:javascript
复制
define('DS', DIRECTORY_SEPARATOR, true); 

向您致敬,Max

票数 3
EN

Stack Overflow用户

发布于 2013-07-03 16:21:00

另一种方法是使用$path作为定义。

代码语言:javascript
复制
define('PATH',$_SERVER['DOCUMENT_ROOT']);
票数 2
EN

Stack Overflow用户

发布于 2013-07-03 16:10:46

这应该很好!如果有更好的方法,我不是很确定。如果您的代码依赖于config.php,我建议使用require_once('config.php');如果没有找到或包含该文件,则脚本将终止,导致致命错误,并且在该点之后不再继续!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17442666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档