このことを考慮:
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がその実装を拒否するため、最初のパラメーターがインターフェース(I)で定義されているものとまったく同じタイプ(A)である必要があります。BはAのサブクラスなので、何が問題なのかわかりません。ここで何かが足りませんか?