Laravel风格项目中引入user.class.php时出现PHP致命错误求助
兄弟,我之前也踩过这种“文件明明在指定位置却死活找不到”的坑,给你几个实用的排查和解决方法:
优先用绝对路径替代相对路径:PHP里的相对路径是基于当前执行脚本的工作目录,而不是你写
require的那个文件的目录。比如如果你的项目是从public目录下的入口文件启动的,那../models其实是相对于public目录,而不是auth_api.php所在的目录。解决方法很简单,用__DIR__常量(它代表当前脚本的绝对路径)来拼接:require_once __DIR__ . '/../models/user.class.php';这样不管入口在哪里,都会从auth_api.php所在的目录往上找models文件夹,绝对不会错。
检查目录和文件名的大小写:如果你的XAMPP是跑在Linux/macOS环境下,PHP是区分文件名大小写的,比如
User.class.php和user.class.php会被当成两个不同的文件。再仔细核对下文件名和你require里写的是不是完全一致。排查文件权限问题:虽然你说文件存在,但XAMPP的Apache进程可能没有读取这个文件的权限。可以把user.class.php的权限改成644(所有者可读可写,其他用户可读),或者把models文件夹权限改成755,确保Apache能访问到。
确认目录结构是否正确:最后再核对一遍目录层级,比如auth_api.php是不是在某个子目录里(比如
app/api/auth_api.php),那往上一级是app/,app/models/user.class.php是不是真的存在?别因为目录嵌套多了搞错层级。
补充:你遇到的错误
PHP Fatal Error: Failed opening required file '../models/user.class.php'本质就是PHP找不到指定路径的文件,上面几个方法基本能覆盖90%的情况。
内容来源于stack exchange

