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).

NomeDescrição
ClassesO argumento tem de ser um objeto de uma classe ou uma classe filha.
InterfacesArgumento deve ser um objeto que implementa esta interface.
arrayArgumento deve ser um array
por parâmetrosArgumento 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

Sugestões? Comente!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.