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: 10637 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<?
// 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 |
|
C - Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






