⊗ppOpIhOI 36 of 107 menu

Operador instanceof e herança em OOP em PHP

Vamos analisar as características da herança ao usar o operador instanceof. Suponha que temos uma classe pai e uma classe filha:

<?php // Classe pai: class ParentClass { } // Classe filha: class ChildClass extends ParentClass { } ?>

Vamos criar um objeto da classe filha:

<?php $obj = new ChildClass; ?>

Agora, vamos verificar usando instanceof se nosso objeto pertence à classe ParentClass e à classe ChildClass:

<?php var_dump($obj instanceof ChildClass); // exibirá true var_dump($obj instanceof ParentClass); // também exibirá true ?>

Como você pode ver no exemplo - o operador instanceof não faz distinção na verificação entre classes pai e classes filhas.

Não se confunda - se o objeto for realmente da classe pai, então, é claro, a verificação de pertencimento à classe filha retornará false:

<?php $obj = new ParentClass; // objeto da classe pai var_dump($obj instanceof ParentClass); // exibirá true var_dump($obj instanceof ChildClass); // exibirá false ?>

Crie uma classe User com as propriedades públicas name e surname.

Crie uma classe Employee que herde da classe User e adicione a propriedade salary.

Crie uma classe City com as propriedades públicas name e population.

Crie 3 objetos da classe User, 3 objetos da classe Employee, 3 objetos da classe City, e em uma ordem aleatória, armazene-os no array $arr.

Percorra o array $arr com um loop e exiba na tela uma coluna com as propriedades name daqueles objetos que pertencem à classe User ou a uma classe descendente desta.

Percorra o array $arr com um loop e exiba na tela uma coluna com as propriedades name daqueles objetos que *não* pertencem à classe User ou a uma classe descendente desta.

Percorra o array $arr com um loop e exiba na tela uma coluna com as propriedades name daqueles objetos que pertencem especificamente à classe User, ou seja, que não são da classe City e nem da classe Employee.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar