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); ?>
|