Funções – Parte II – Retornando Valores
Todas as funções em PHP retornam valores, mesmo se você não informar o retorno. O conceito de função “vazia” não se aplica no PHP. Você pode especificar o valor de retorno da sua função usando a palavra-chave return.
function ola()
{
return “Olá mundo”; // Retorna uma string “Olá mundo”
}
$txt = ola(); // Atribui o valor de retorno “Olá mundo” para a variável $txt
echo ola(); // exibe “Olá mundo”
A palavra-chave return, também permite que você interrompa a execução de uma função, mesmo se você não quiser devolver um valor:
function ola($quem)
{
echo “Olá $quem”;
if ($quem == “mundo”) {
return; // Nada mais na função será processado
}
echo “, como vai você”;
}
ola(“mundo”); // exibe “Olá mundo”
ola(“leitor”) // Displays “Olá leitor, como vai você?”
Note, no entanto, que mesmo se você não retornar um valor, PHP ainda irá retornar da sua função um valor NULL.
Funções também podem ser declaradas para que elas retornem por referência, o que permite a você o retorno de uma variável como o resultado da função, em vez de uma cópia (uma cópia está retornando o padrão para cada tipo de dados exceto objetos).
Normalmente, isto é usado para coisas como recursos (como conexões de dados) e quando se aplica o padrão de fábrica. No entanto, há uma ressalva: você deve retornar uma variável, você não pode retornar uma expressão por referência, ou utilizar uma declaração vazia para forçar um retorno de valor NULL:
function &query($sql)
{
$result = mysql_query($sql);
return $result;
}
// A função seguir é errada e vai o PHP irá emitir um aviso de erro quando chamado.
function &getHello()
{
return “Olá mundo”;
}
// Isto também irá fazer com que o alerta seja emitido quando chamado.
function &teste()
{
echo ‘Este é um teste’;
}

