假设我的文档根目录是/ root,并且在该目录中我有我的index.php,加上两个名为branch1和branch2的子目录.coolch1和branch2都有包含文件,其中一个必须包含基于一个或者更多条件陈述。 (是的,我知道不可能在同一个名称下使用不同版本的文件,但这是我愿意接受的特殊情况。)
对于(简化)示例:
/root
/root/index.php
/root/branch1
/root/branch2/include.php
/root/branch2
/root/branch2/include.php
我想做的是这样的事情:
if ($condition)
chdir ('branch1')
else
chdir ('branch2');
include ('./include.php');
显然上面的代码不起作用,因为即使在chdir()之后,include路径仍然是相对于/root/index.php。
是否有可能(如果是这样,如何)更改include(),require()和其他涉及相对路径的操作的基本目录? (当然,这里的想法不仅仅是在上面的例子中做包含,而是更多。)
当然有人会指出正确的方法是:
if ($condition)
include ('branch1/include.php')
else
include ('branch2/include.php')
但是我故意在这里寻找一个kludge。 : - )
答案 0 :(得分:0)
为什么不是全局变量?
const $BRANCH = $condition ? 'branch1' : 'branch2';
include ($BRANCH.'/include.php');