PHP 7

Declarando tipo de retorno no PHP 7

Por em

O PHP 7 chegou e trouxe muitas novidades! Neste artigo vamos falar sobre o Return Type Hinting. Vamos lá!

Este é um recurso que já existe em outras linguagens de programação, como por exemplo, o Java, e agora está disponível também na linguagem PHP a partir da versão 7.

Mas antes de iniciarmos, vamos entender este conceito que é muito simples e consiste em determinar qual o tipo de retorno a função alvo terá, ou seja, é como se fosse possível dizermos o seguinte: “A função getName() irá retornar um dado do tipo string”, simples não é?

Veja o exemplo abaixo:

Percebam que no segundo bloco de código, foi acrescentado na assinatura da função o tipo de dado que ela deverá retornar. Muito simples!

Vamos aprofundar um pouco mais neste assunto e ver este comportamento aplicado na orientação a objetos. Vejam o bloco de código abaixo:

Interessante!

Vejam que a nossa classe AppLog implementa a interface LogInterface, logo precisamos implementar o método write, que por sua vez, na sua assinatura é explicito que o mesmo deve retornar um tipo string, e assim também deve ser na declaração do método que o implementa, ou seja, deve estar declarado que o mesmo retorna um tipo string.

Vamos ver agora um exemplo de uma função retornando uma classe como tipo de dado. Veja o exemplo abaixo:

No exemplo acima nossa função getCourse() declara em sua assinatura que será retornado um dado do tipo Course, ou seja, a classe Course.

Até agora tudo funcionou muito bem! Mas e se eu retornar um null?

Vamos ver o código abaixo:

Percebam que declaramos que nossa função deve retornar um tipo DateTime, mas retornamos um null, neste caso vamos obter o seguinte erro:

A mensagem do erro obtido é bem objetiva, “você me disse que iria retornar um DateTime e retornou um null, e isso não pode, é um erro.”, ou seja, declarar um tipo de retorno e retornar null, ira gerar um Fatal error. Porém, ainda assim, podemos omitir o tipo de retorno da função, neste caso qualquer tipo de dado poderá ser retornado, inclusive o null. Vejam o exemplo abaixo:

Vamos ver mais dois exemplos, agora com relação aos métodos __construct() e __destruct():

Para ambos os exemplos acima, teremos um Fatal Error, pois os métodos __construct() e __destruct() não podem declarar o tipo de retorno.

Vejam os respectivos erros abaixo:

Pessoal chegamos ao final deste artigo, como vocês puderam ver a declaração do tipo de retorno é um recurso muito útil e ao mesmo tempo muito simples.

Um abraço e até a próxima.

  • Show Leandro! Ótimo post, parabéns!!!

  • Matheus de Almeida Rosa

    Muito bem escrito! Parabens!

  • Leandro!

    Muito bem explicado meus parabéns!

  • Excelente conteúdo!! Sempre!

  • Tipos de retorno foi algo que sempre quis no PHP, graças a Deus essa é uma das inúmeras novidades do PHP 7!

    Ótimo post e muito bem explicado!

  • Diogo Bemfica

    Muito boa iniciativa, estou gostando muito dessa serie

  • Paloma

    Parabéns!

  • Guilherme Ferreira

    Ótimo artigo Leandro! O PHP 7 está com tudo mesmo.

  • Nilton

    Muito bom, seria melhor se o tipo de dados fosse passado logo após o modificador, assemelhando às outros linguagens:

    public string meuMetodo()
    {
    return “minha string”;
    }

    PHP 7 está top!