Código PHP:
Ver originalinterface b extends a // la interfaz al igual que una clase comun se puede extender
{
public function baz(Baz $baz);
}
estas declarando en la interface que el método baz espera como argumento un objeto del tipo Baz (imagino que tendras declarada una clase Baz), cuando haces la declaración en la clase
Código PHP:
Ver original// Ésto sí funcionará
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
{
}
}
// Ésto no funcionará y resultará en un error fatal (es lo que dice el manual que estoy leyendo)
class d implements b
{
public function foo()
{
}
public function baz(Foo $foo)
{
}
}
la primera funciona porque esta cumpliendo con lo establecido en la interface, en la declaración el método espera su objeto del tipo Baz, en la segunda rompes el contrato establecido, ya que en no estas haciendo la implementación de lo indicado en la interface
Código PHP:
Ver originalpublic function baz(Foo $foo)
// es diferente de
public function baz(Baz $baz);
saludos