当我尝试实例化以下内容时出现错误:
$main = new Main();
$main->run();
class Main
{
public function run() {
$instance = new C();
}
}
错误:
Fatal error: Class 'C' not found in /path/to/file/test.php on line xx
所有内容都需要在同一个文件中,因此我对类和接口进行了以下设置:
interface A { ... }
abstract class B { ... }
class C extends B implements A { ... }
这个顺序是有道理的,我无法弄清楚它为什么不起作用。此外,Main类在接口A之前定义。
答案 0 :(得分:0)
代码顺序不正确。像大多数解释器和编译器一样,php是一种从上到下的语言,这意味着必须在使用之前定义所使用的所有内容。
代码的正确顺序如下:
/*1*/ interface A { ... }
/*2*/ abstract class B { ... }
/*3*/ class C extends B implements A { ... }
/*4*/ class Main
{
public function run()
{
$instance = new C();
}
}
/*5*/ $main = new Main();
/*6*/ $main->run();