Em PHP, como tudo é dinâmico – até a tipagem de variáveis, é comum quando trabalhamos com objeto verificar seu tipo com o instanceof. Mas existem um jeito mais elegante que é o seguinte:
class carro {
… bla bla bla …
}
class cavalo {
… bla bla bla …
}
function imprimeCarros( carro $umCarro ) {
print $umCarro;
}
$meuCarro = new carro();
$meuCavalo = new cavalo();
imprimeCarros( $meuCarro );
imprimeCavalos( $meuCavalo );
Na primeira chamada de imprimeCarro vai ocorrer tudo ok. Na segunda chamada, como o tipo de objeto é diferente, vai estourar um erro. Sei que parece óbvio mas, deixa o código mais elegante…