PHP para Iniciantes: Estruturas de Controle - RETURN

Dessa estrutura, dificilmente você pode escapar. Afinal, uma das funcionalidades mais consumidas nas linguagens de programação é ter um operador capaz de retornar o resultado de alguma coisa.

Sua semântica é simples de entender: RETORNE (algumaCoisa). Mas o verbo retornar pode gerar uma certa confusão a depender do contexto. Mantenha em mente que, no caso da estrutura return, esse verbo usa o significado regressar. Você ordena que o interpretador volte ao ponto que o levou até o escopo atual com o dado que deseja transferir de volta. Se não houver ponto para retornar, ele encerrará o processo atual.

Quer um exemplo? Nós podemos mencionar os Correios. Se o entregador bate na sua porta três vezes e ninguém responde, ele retorna para o veículo com o pacote em mãos. Se você atende e recebe, ele retorna sem o pacote, mas com sua confirmação de recebimento.

O ponto aqui é: retornar é basicamente voltar ao que estava fazendo antes com a informação que resultou das instruções executadas ou void se não tiver retorno algum.

É fácil entendermos seu uso em funções, que sempre tem uma declaração de return, mesmo que não seja de forma explícita.

Ué, Kiko, eu já vi funções sem nenhum return...

Não é porque você não vê que ele não está lá.

Matrix...

Enfim, pra resumir a resposta sobre o retorno de funções sem return, existe um tipo de retorno declarado como void, e esse é o cenário. "Não retornar nada" é o equivalente a executar return;, por isso, suas funções sempre estarão retornando alguma coisa.

E que tipo de dado primitivo representa o void, Kiko?

O null. Acho que com isso, dá pra entender o impacto do return no resultado das funções... Mas, olha só, return não é nada exclusivo de funções, sabia? Você pode fazer um script retornar alguma coisa. Vamos ao exemplo prático:

<?php // juntar-nome-e-sobrenome.php

return $nome .' ' . $sobrenome;

Ué, Kiko?! De onde veio $nome e $sobrenome? Por que raios retornar algo em um script?

Calm down, buddy

<?php // index.php ao lado de juntar-nome-e-sobrenome.php
$nome = 'Kaique';
$sobrenome = 'Garcia';

$nomeSobrenome = include_once(__DIR__ . '/juntar-nome-e-sobrenome.php');
var_dump($nomeSobrenome); // string(Kaique Garcia)

O $nome e $sobrenome foram dados criados no arquivo index.php. Então, repentinamente, eu falo para o interpretador incluir as instruções presentes no arquivo juntar-nome-e-sobrenome.php. No contexto atual, como as variáveis existem, nenhum erro irá ocorrer. Mas depois de chegar na linha com return, nós instruímos o interpretador a parar de interpretar o arquivo script.php e retornar ao arquivo index.php, recebendo o dado que veio no return.

Portanto, assim como funções, todo script PHP também retorna alguma coisa, incluindo nada (void)... Concorda? Pois é...

E por hoje é só! Curtiu? Comenta e compartilha! Mais um artigo curtíssimo pra facilitar a leitura da galera... Estou sentindo falta dos comentários aqui no blog, cadê vocês? Bom... No próximo artigo, falaremos sobre a estrutura require. Tem potencial para ser mais um bem curto... Pode esperar!

Inté!!