рассмотрите следующее:
class A{}
class B extends A{}
interface I{
// expects object instanceof A
function doSomething(A $a);
}
class C implements I
{
// fails ????
function doSomething(B $b){}
}
По моему мнению, вышеуказанное должно работать, но это не так, поскольку php отклоняет эту реализацию, требующую, чтобы первый параметр был точно такого же типа (A), как определено в интерфейсе ( Я). Поскольку B является подклассом A, я не понимаю, в чем проблема. Мне что-то здесь не хватает?