我是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”);
答案 0 :(得分:0)
您有两种可能的(常见)方法:
为production.inc.php
和development.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