PHP特定文件相对路径失效但绝对路径可用问题求助
问题原因分析
你的问题出在PHP相对路径的基准目录逻辑上,这是新手很容易踩的坑:
- PHP里的相对路径(比如
../database/database.php),不是以home.php所在的logged文件夹为基准,而是以**PHP运行时的当前工作目录(CWD)**为基准。 - 举个实际场景:如果你的项目是通过根目录的入口文件(比如
index.php)加载home.php的,那当前工作目录就是项目根目录E:\allProject\CS50\final_project\Remember。这时候../database/database.php会被解析成E:\allProject\CS50\final_project\database.php——这个路径根本不存在,自然触发报错。 - 绝对路径能正常运行,是因为它直接指定了文件的完整位置,完全不受当前工作目录的影响。
稳定的替代写法
如果想避免这类路径问题,可以用PHP内置的__DIR__常量(它会返回当前文件所在的绝对目录)来拼接路径:
require_once(__DIR__ . '/../database/database.php');
这样不管当前工作目录是什么,都能精准定位到database.php。
内容的提问来源于stack exchange,提问作者Andrew530
相关产品推荐
相关产品推荐

