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












