# 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á.

<center> ![Matrix...](https://media.giphy.com/media/v7WM6sLcnGIc8/giphy.gif) </center>

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
<?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
<?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é!!**
