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á.
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é!!