Você está aqui: PHP ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como usar o operador instanceof para testar se um objeto é uma instância de um determinada classe ou implementa uma determinada interfaceQuantidade de visualizações: 10399 vezes |
Em algumas situações gostaríamos de verificar se um objeto é uma instância de uma determinada classe (ou herda de uma determinada classe) ou se a classe do objeto implementa uma determinada interface. Para isso podemos usar o operador instanceof. O operador instanceof é um operador binário (que pode ser usado com dois operandos) e possui a seguinte sintaxe: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- if($referência instanceof Classe){ ... } Aqui $referência é uma referência ao objeto que queremos testar e Classe é o nome da classe ou interface contra a qual queremos testar o objeto. Vamos ver um exemplo? Veja o código PHP que cria três classes (coloquei uma pitada de herança aqui para deixar o exemplo mais interessante) e, em seguida, testa se uma referência aponta para uma instância de uma delas: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- <? // Uma classe Forma genérica class Forma{ } // Uma classe Retangulo que herda de Forma class Retangulo extends Forma{ } // Uma classe Circulo que deveria herdar de Forma mas // não o faz class Circulo{ } // vamos criar objetos das classes Retangulo e Circulo $retangulo = new Retangulo(); $circulo = new Circulo(); // vamos verificar se $retangulo é mesmo do tipo Retangulo if($retangulo instanceof Retangulo){ echo "\$retangulo é do tipo Retangulo<br>"; } // Como Retangulo herda de Forma, é de se esperar que $retangulo // seja também uma Forma if($retangulo instanceof Forma){ echo "\$retangulo é do tipo Forma<br>"; } // Finalmente vamos confirmar que Circulo não é um Retangulo if(!$circulo instanceof Retangulo){ echo "\$circulo NÃO é do tipo Retangulo"; } ?> A adição do operador instanceof ao PHP visa substituir a função is_a() já embutida na linguagem. O uso desta última é agora considerado desatualizado (deprecated). |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |