Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP错误“;“未找到类”;使用抽象类_Php_Class_Abstract - Fatal编程技术网

PHP错误“;“未找到类”;使用抽象类

PHP错误“;“未找到类”;使用抽象类,php,class,abstract,Php,Class,Abstract,我使用静态工厂方法创建抽象类的具体实现。但是我经常会遇到“找不到类”的错误 我知道我的“require”路径是正确的,因为任何其他配置都会导致“无法打开流”错误 我的问题是,为什么我得到这个“类未找到?” 当我这样做时,我得到: 致命错误:在中找不到类“B” 第11行的C:\phpproject\C A有require_一次(B.php),B有require_一次(C.php),C有require_一次(B.php)。。。没有其他错误。因为您在代码中使用了不存在的关键字方法,使您的类无法正确识别

我使用静态工厂方法创建抽象类的具体实现。但是我经常会遇到“找不到类”的错误

我知道我的“require”路径是正确的,因为任何其他配置都会导致“无法打开流”错误

我的问题是,为什么我得到这个“类未找到?”

当我这样做时,我得到:

致命错误:在中找不到类“B” 第11行的C:\phpproject\C


A有require_一次(B.php),B有require_一次(C.php),C有require_一次(B.php)。。。没有其他错误。

因为您在代码中使用了不存在的关键字
方法
,使您的类无法正确识别和评估,因此在正确定义的类中无法发现。

谢谢——这不是我使用的方法的真实名称,而是一些懒惰的伪代码。不管怎样,既然我已经修复了抽象类。。。我没有时间深入研究这里出了什么问题,但我认为抽象类的检索正在悄无声息地失败,因为它的设计错误(但不是“方法”的东西lol)。不过,您的观点是正确的,所以虽然它不适用于我的代码,但应该看到它。
class A {
   public function method () {
      $obj = B::factorymethod();
   }
}

abstract class B {
   static function factory() {
      return new C();
   }
}

class C extends B {}