PHP conta com extensa documentação de funções para o desenvolvedor saber quais os argumentos que uma função pode fazer. O PHP 5 permite especificar o tipo de argumentos que a função aceita. Os tipos permitidos incluem classes, interfaces e pseudos arrays e parâmetros (callable).
Nome | Descrição |
Classes | O argumento tem de ser um objeto de uma classe ou uma classe filha. |
Interfaces | Argumento deve ser um objeto que implementa esta interface. |
array | Argumento deve ser um array |
por parâmetros | Argumento deve ser passado com parâmetros na função |
Uma dica é definir prefixando o parâmetro com o tipo na assinatura da função. Abaixo está um exemplo usando o tipo array introduzidas no PHP 5.1.
<?php function myprint(array $a) { foreach ($a as $v){ echo $v; } } myprint( array(1,2,3) ); // "123" myprint('Test'); // erro fatal ?>
Não satisfazer os resultados gera um erro fatal. Isto faz com que seja mais fácil de detectar quando um argumento inválido é usado.
O pseudo tipo foi adicionado no PHP 5.4. Com este tipo no lugar do argumento deve-se colocar uma função, método ou objeto. Construtores de linguagem, tais como echo não são permitidos, mas funções anônimas pode ser usado como no exemplo abaixo.
function mycall(callable $callback, $data) { $callback($data); } $say = function($myString){ echo $myString; }; mycall( $say, 'Hi' ); // "Hi";
Não pode ser utilizado com tipos básicos, tais como booleano, int ou string. Os pseudos tipos usam funções internas, como a mixed e number, também não são permitidos. Além disso, não há nenhuma maneira de sugerir valor de retorno de uma função.
Links úteis:
http://php.net/manual/pt_BR/language.oop5.typehinting.php