Com a proximidade do lançamento do PHP7, mais detalhes sobre os novos recursos já estão sendo compartilhados com a comunidade.
Neste artigo, iremos apresentar o novo recurso de declaração de tipo de retorno de uma função.
Declarar tipos de retorno, tem várias motivações e casos de uso, como?
- Previnir sub-tipos de quebrarem o tipo esperado de retorno para um super-tipo, como nos casos de interfaces;
- Proteger contra retornos de tipos inesperados e inválidos;
- Facilidade de documentação do tipo de retorno através de uma declaração da linguagem, o que não permitiria um desacordo possível em sistemas de documentação baseados em comentário. O retorno seria garantido pela Engine da própria linguagem de programação;
Abaixo, iremos apresentar dois exemplos:
function foo(): array { return []; }
interface A { static function make(): A; } class B implements A { static function make(): A { return new B(); } }