Quando executas uma função sem retorno. basicamente estás a proceder a um procedimento, isto é imagina que tens um bocadão de código que se repete várias vezes e que esse bocado de código é apenas um procedimento que não volta a ser usado, então se o meteres todo numa função, apenas terás de a chamar as vezes que quiseres para executar o procedimento (exemplo: para quem conhece VB .Net por exemplo poderá fazer essas distinções lembrando-se das funções e das Sub)
Neste caso não é o facto, o que pretendes é que a função faça um cálculo e depois retorna o seu resultado, como tal terás de usar o "return".
O return permite retonar 1 valor ao qual poderá ser associado a uma varíavel. Existe truques em certas linguagens de programação que permitem retornar mais que um valor, por exemplo em Python posso retornar vários valores o que na realidade não é mais do que uma Tuple que me será retornada, o que depois poderei aceder como se de um array se tratasse.
Voltando ao teu caso o que deverás ter será algo mais assim.
function calcular($a, $b){
$c = $a + $b;
return $c;
}
echo calcular(1, 2);
Este echo irá retornar o valor da adição mas poderias ter algo assim
function calcular($a, $b){
$c = $a + $b;
return $c;
}
$x = calcular(1, 2);
$z = $x - 2;
Neste exemplo o valor calculado na função é colocado numa variável que depois é utilizada fora da função.
Para concluir é de referir que as variáveis são locais, isto é, uma variável utilizada dentro de uma função apenas na mesma é utilizada, se tentar utilizar a variável fora da função irá dar erro, tal como se ela não estivesse declarada.