A code like that :
interface entite
{
}
class Foo implements entite
{
}
$foo = new foo;
if( $foo instanceof entite ) echo "he is";
Displays "he is". Foo inherit type "entite" from the interface But when try that :
class FooDeleter implements deleter
{
public function __construct(Foo $Foo)
{
}
}
interface deleter
{
public function __construct(entite $entite);
}
Gives me :
Fatal error: Declaration of FooDeleter::__construct() must be compatible with deleter::__construct(entite $entite)
Why ? How to ? =(
Edit : The unique way is actually define the typed deleter like that :
class FooDeleter implements deleter
{
public function __construct(entite $Foo)
{
if( $Foo instanceof Foo ) { ... }
}
}