Manual do PHP
Anterior | Capítulo 19. Classes e Objetos (PHP 5) | Próxima

# Indução de Tipo

PHP 5 introduz Indução de Tipo. Funções podem forçar que os parâmetros sejam objetos especificando o nome da classe no protótipo da função.

Exemplo 19-39. Exemplo Indução de Tipo
`<?php // Uma classe de exemplo class MinhaClasse { /** * Uma função de teste * * Primeiro parâmetro deve ser um objeto do tipo OutraClasse */ public function teste(OutraClasse $outraclasse) { echo $outraclasse>var; } } // Outro classe de exemplo class OutraClasse { public $var = 'Alô Mundo'; } ?>`
Não satisfazer a indução de tipo resulta em erro fatal.
`<?php // Uma instância de cada classe $minhaclasse = new MinhaClasse; $outraclasse = new OutraClasse; // Erro Fatal: Argumento 1 deve ser um objeto da classe OutraClasse $minhaclasse>teste('hello'); // Erro Fatal: Argumento 1 deve ser uma instância de OutraClasse $foo = new stdClass; $minhaclasse>teste($foo); // Erro Fatal: Argumento 1 deve ser diferente de null $minhaclasse>teste(null); // Funciona: Imprime Alô Mundo $minhaclasse>teste($outraclasse); ?>`
Indução de tipo também funciona com funções:
`<?php // Um exemplo de classe class MinhaClasse { public $var = 'Alô Mundo'; } /** * Uma função de teste * * Primeiro parâmetro deve ser um objeto do tipo MinhaClasse */ function MinhaFuncao (MinhaClasse $foo) { echo $foo->var; } // Funciona $minhaclasse = new MinhaClasse; MinhaFuncao($minhaclasse); ?>`

Indução de tipo só pode ser usado com tipos objetos. Indução tradicional com int e string não são suportados.

Anterior | Principal | Próxima
Reflexão | Acima | Exceções