PHP使用抽象类时出现Class Not Found类未找到报错问题
问题原因
- 你定义抽象类的
abstract/Products.php文件使用了PHP短开放标签<?,绝大多数PHP环境默认关闭了short_open_tag配置,不会解析该文件内的PHP代码,直接当成普通文本输出,因此Products类没有被正常注册,子类继承时就会抛出类未找到的错误。 - 相对路径引入也可能存在不稳定的问题,当脚本执行的工作目录变化时,相对路径会找不到对应文件。
解决方法
- 把
abstract/Products.php文件开头的<?替换为标准的<?php标签,这是兼容性最好的写法,不需要依赖额外的PHP配置项。 - 建议引入文件时使用绝对路径避免路径解析问题,将
index.php的引入代码修改为:
include_once __DIR__ . '/abstract/Products.php'; include_once __DIR__ . '/classes/GetAllProducts.php';
修改完成后重新运行即可正常执行。
内容的提问来源于stack exchange,提问作者DavSev
相关产品推荐
相关产品推荐

