You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么该场景下使用PHP __DIR__拼接路径时需要写双层../?

问题原因

__DIR__返回的目录路径末尾不会自带目录分隔符,你打印得到的结果是C:\xampp\htdocs\zcron,而非带末尾斜杠的C:\xampp\htdocs\zcron\。直接拼接../zzz/db/config.php后得到的完整路径为C:\xampp\htdocs\zcron../zzz/db/config.php,系统无法识别zcron../这部分的层级跳转逻辑,因此报文件不存在错误。
你写两层../能正常运行属于路径解析的容错结果,并非正确写法,一旦目录结构变化就会再次出错。

正确解决方案

拼接路径时在__DIR__后补充目录分隔符即可,仅需一层../就能正常跳转:

<?php
// 通用写法,Windows和Linux系统都兼容
require __DIR__ . '/../zzz/db/config.php';

// 也可以用PHP内置常量保证跨平台分隔符完全一致
require __DIR__ . DIRECTORY_SEPARATOR . '../zzz/db/config.php';
?>

补充斜杠后拼接出的路径为C:\xampp\htdocs\zcron/../zzz/db/config.php,系统会正常解析为回退到zcron的上一级目录htdocs,再进入zzz/db目录读取配置文件,和你直接写相对路径require '../zzz/db/config.php'的逻辑完全一致。

内容的提问来源于stack exchange,提问作者user16357892

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:24:01