PHP - 需要帮助声明和使用常量

时间:2016-11-10 18:00:27

标签: php

我是PHP的新手。我一直在查看文档并遇到问题。我有一个我正在研究的多页PHP网站。我遇到了相对路径(PHP Relative Path Issues)的问题,并指向了以下网址(PHP include relative path)。我想在帖子中使用类似于以下代码片段的内容:

if (is_production()) {
    define('ROOT_PATH', '/some/production/path');
}
else {
    define('ROOT_PATH', '/root');
}
include ROOT_PATH . '/connect.php';

在哪个页面上我添加了define语句(index.php?),如何在每个包含include语句的后续页面上引用ROOT_PATH?

我尝试将define语句添加到index.php页面,但在任何其他页面上调用ROOT_PATH会导致:使用未定义的常量ROOT_PATH

Index.php:define('ROOT_PATH','/ some / production / path');
其他一些页面:include_once(ROOT_PATH。“/ Library / API / database.inc.php”);

3 个答案:

答案 0 :(得分:0)

您有两种可能的(常见)方法:

production.inc.phpdevelopment.inc.php等每个环境创建文件,并使用index.php条件在is_production()中添加所需文件。

- 或 -

创建包含

的单个文件
if (is_production()) {
    define('ROOT_PATH', '/some/production/path');
} else {
    define('ROOT_PATH', '/root');
}

然后将该单个文件包含在需要这些常量的所有页面中。

答案 1 :(得分:0)

我认为我的问题是一个SCOPING问题。虽然我选择@ parthmahida和@Spechal建议,但仍有问题。我最终不得不考虑范围界定以在功能中看到它。

答案 2 :(得分:0)

如果要包含一个包含环境配置信息和常量的文件,它必须始终与调用它的脚本相关。

<?php

// config.php
function is_production(){ // do something to return boolean }
if (is_production()) {
    define('ROOT_PATH', '/some/production/path');
}
else {
    define('ROOT_PATH', '/root');
}

...

<?php

// index.php
include 'config.php';
include ROOT_PATH . 'some-file.php';
// do stuff

...

<?php

// some-page.php
include 'config.php';
include ROOT_PATH . 'other-file.php';
// do stuff