为什么我会收到此错误:
Fatal error: Declaration of ConcreteFooMapper::load() must be compatible with that of AbstractFooMapper::load() on line 18
Run Code Online (Sandbox Code Playgroud)
从这个代码:
<?php
interface Foo {
public function foo();
}
class ConcreteFoo implements Foo {
public function foo() {
}
}
abstract class AbstractFooMapper {
abstract public function load(Foo $entity, array $data);
}
class ConcreteFooMapper extends AbstractFooMapper {
public function load(ConcreteFoo $entity, array $data) {
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我最初的想法是这是一个错误;PHP在评估方法声明时没有检测到ConcreteFoo实现了Foo。我认为这是因为当您运行此代码时:
<?php
interface Foo {
public function foo();
}
class ConcreteFoo implements Foo …
Run Code Online (Sandbox Code Playgroud)