Funções
PHP Manual

Retornando valores

Valores podem ser retornados utilizando a instrução opcional return. Qualquer tipo pode ser retornado, incluindo arrays e objetos. Isto faz com que as função termine sua execução imediatamente e passa o controle de volta para a linha de onde ela foi chamada. Veja a documentação da função return para maiores informações.

Nota:

Se return for omitido então o valor NULL será retornado.

Use of return

Exemplo #1 O uso de return

<?php
function quadrado ($num)
{
    return 
$num $num;
}
echo 
quadrado (4);   // imprime '16'.
?>

Você não pode retornar múltiplos valores a partir de uma função, mas resultados similares podem ser obtidos retornando um array.

Exemplo #2 Retornando um array para devolver vários valores

<?php
function numeros_pequenos()
{
    return array (
012);
}
list (
$zero$um$dois) = numeros_pequenos();
?>

Para retornar uma referência de uma função, use o operador de referência & em ambas a declaração da função e quando definindo o valor para a variável.

Exemplo #3 Retornando uma referência de uma função

<?php
function &retorna_referencia()
{
    return 
$alguma_referencia;
}

$nova_referencia =& retorna_referencia();
?>

Para mais detalhes sobre referências, leia a seção Referências.

Declaração de tipo de retorno

O PHP 7 acrescenta suporte a declaração de tipo de retorno. Similar à declaração de tipagem de argumentos, declaração de tipo de retorno especifica o tipo do valor que será retornado de uma função. Os mesmos tipos que estão disponíveis para declaração de argumentos estão disponíveis para tipagem de retornos.

A tipagem estrita também afeta a tipagem de retorno. No modo padrão (tripagem fraca) o valores retornados serão convertidos para o tipo correto caso não enquadrem no tipo informado. No modo de tipagem forte os valores retornados precisam ser o tipo correto ou uma exceção TypeError será lançada.

Nota:

Quando sobrescrevendo um método, o novo método precisa concidir com a tipagem de retorno do método anterior. Se o método sobrescrito não define uma tipagem de tipo, então o novo método precisa espelhar isso.

Exemplos

Exemplo #4 Declaração de tipo de retorno

<?php
function sum($a$b): float {
    return 
$a $b;
}

// Note que um float será retornado.
var_dump(sum(12));
?>

O exemplo acima irá imprimir:

float(3)

Exemplo #5 Modo estrito em ação

<?php
declare(strict_types=1);

function 
sum($a$b): int {
    return 
$a $b;
}

var_dump(sum(12));
var_dump(sum(12.5));
?>

O exemplo acima irá imprimir:

int(3)

Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5

Exemplo #6 Returning an object

<?php
class {}

function 
getC(): {
    return new 
C;
}

var_dump(getC());
?>

O exemplo acima irá imprimir:

object(C)#1 (0) {
}

Funções
PHP Manual