Exemplo 19-41. 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; }
/** * Outra função de teste * * Primeiro parâmetro deve ser um array */ public function testa_array(array $array_de_entrada) { print_r($array_de_entrada); } }
// 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);
// Erro Fatal: Argumento 1 deve ser um array $minhaclasse->testa_array('a string');
// Funciona: Imprime o array $minhaclasse->testa_array(array('a', 'b', 'c')); ?>
|
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); ?>
|