У меня есть абстрактный класс A
, который расширен классом B
, который реализует интерфейс I
.
abstract class A {
public function test(){
return $this->getX();
}
abstract protected function getX();
}
class B extends A implements I {
public function Test() {
$x = this->getX();
if (!$x instanceof I) {
throw new RuntimeException("not an instance of I");
}
}
public function getX() {
$aCoordinates = array('x' => 1, 'y' => 4, 'z' => 5);
return $aCoordinates;
}
}
interface I {}
RuntimeException
всегда выбрасывается, несмотря на то, что $x
является экземпляром I
. У кого-нибудь есть идея, почему это происходит?
getX()
возвращает массив. getX()
является просто примером для функции, возвращающей массив.