require_once在没有包含路径的情况下工作

时间:2010-08-23 09:43:48

标签: php require-once

我的文件1.php有2.php的require_once(它们都在不同的文件夹中)。我遇到的问题是1.php似乎神奇地包含2.php,因为2.php的路径不是1.php。可以肯定的是,我甚至在require_once'2.php'之前添加了一个set_include_path('。'),但它仍然可以正常工作......是否有一些明显我缺失的东西或者这很奇怪?

编辑:

//-- file 1.php
//-- long list of requires...
set_include_path('.');
echo get_include_path();
require_once '2.php';

以上工作正常,而1.php和2.php在不同的文件夹中。

5 个答案:

答案 0 :(得分:2)

PHP中有一些包含魔法,我以前见过它 我相信有些东西与自动加载相关 它总是在文件夹中查找运行类的文件所在的文件夹

答案 1 :(得分:1)

设置空包含路径后尝试echo get_include_path(),可以将其设置在其他位置(例如在Web服务器配置文件中)。

答案 2 :(得分:1)

远射但可能其中一个包含的文件改变了当前的工作目录:

<?php
echo 'cwd at the beginning of 1.php: ', getcwd(), "\n";
//-- file 1.php
//-- long list of requires...
set_include_path('.');
echo 'include_path: ', get_include_path(), " \n";
echo 'cwd: ', getcwd(), "\n";
require_once '2.php';

答案 3 :(得分:1)

为了论证,如果你把2.php放在与1.php相同的位置,新文件是否包括在内而不是旧文件?

您能告诉我们open_basedir的价值是什么吗?

答案 4 :(得分:1)

也许你在文件1的路径中有一个与文件2同名的文件。