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: 10414 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: 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: <? // 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 |
JavaScript - Como adicionar elementos no início de um array JavaScript usando a função unshift() do objeto Array wxWidgets - Como usar a classe wxFrame para criar a janela principal de suas aplicações C++ wxWidgets |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |