我的文件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在不同的文件夹中。
答案 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同名的文件。