我使用静态工厂方法来创建抽象类的具体实现。但我经常收到“未找到课程”错误。
我知道我的“require”路径是正确的,因为任何其他配置都会导致“无法打开流”错误。
我的问题是,为什么我会收到“未找到课程?”
class A {
public function method () {
$obj = B::factorymethod();
}
}
abstract class B {
static function factory() {
return new C();
}
}
class C extends B {}
当我这样做时,我得到:
致命错误:未找到“B”类 第11行的C:\ phpproject \ C
A有require_once(B.php),B有require_once(C.php),C有require_once(B.php)......没有其他错误。
答案 0 :(得分:2)
因为您在代码中使用了不存在的关键字method
,因此无法正确识别和评估您的类,因此,不会在正确定义的类中发现它。