【发布时间】:2018-05-28 11:42:50
【问题描述】:
我有两个文件,比如说 a.php 和 b.php:
a.php:
require 'b.php';
interface testInterface{}
class a implements testInterface{}
b.php:
class b extends a{}
当我运行 a.php 时,它会抛出这个致命错误:
致命错误:在第 2 行的 b.php 中找不到类 'a'
使其更有趣的两个考虑因素:
如果我删除
a类中的implements子句,一切正常。如果我将
b类与a类放在同一个文件中,但不将其作为外部文件包含在内,一切正常。
我不明白为什么会抛出该错误,非常感谢任何帮助。
【问题讨论】:
-
在定义
class a之前,你需要b.php,它依赖于class a的定义。由于{原因},它碰巧在没有界面的情况下也能工作,但你不应该首先创建这个逻辑轮播。 -
你也需要 a.php 吗?
-
为什么定义父类的文件还要导入带有子类的文件?!父母不应该知道他们的孩子。 b.php 应该
require_once 'a.php'并且你应该正在执行 b.php。 -
学习使用自动加载
-
@deceze 我想从 a 实例化 b,但现在我意识到它不应该这样工作。谢谢。
标签: php php-internals