Esse artigo faz parte da revista Clube Delphi Edição 91. Clique aqui para ler todos os artigos desta edição

e Gauss para a soma de números inteiros (Listagem 1).

 

Listagem 1. Fórmula de Gauss

 

<?php

  $result = gauss(4);

  echo "Soma de 1 até 4: $result<br>\n";

  # função para calcular a soma de 1 para $upper

  function gauss($upper){

    if(is_int($upper) && ($upper > 0)){

      return($upper*($upper+1)/2);

    }

  }

?>

 

Na primeira linha vemos a função de Gauss sendo chamada. Um parâmetro deve ser passado à função. Este parâmetro definirá o limite superior da soma que desejamos computar. Se o parâmetro passado para a função for um valor inteiro e se for maior do que o zero, o resultado é computado e retornado para a função principal. O resultado é passado para a função principal utilizando o comando return. Neste caso será retornado o valor 10 e a seguir, será exibido na tela o texto:

 

Soma de 1 até 4: 10

 

Podemos também chamar funções passando mais de um parâmetro. O exemplo da Listagem 2 mostra uma versão ligeiramente adaptada da função que vimos anteriormente. Com a ajuda desta função, é possível computar a soma de valores inteiros, iniciando de um valor inicial e atingindo um valor final maior (o valor inicial não está incluído na soma). Se executarmos o script, o resultado exibido na tela será:

 

Resultado: 45

 

Listagem 2. Fórmula de Gauss com mais de um parâmetro

 

<?php

  $lower = 4;

  $upper = 10;

 

  $result = gauss($lower, $upper);

  echo "Resultado: $result<br>\n";

 

  function gauss($lower, $upper){

    if($upper >= $lower && $lower >= 0){

      return ($upper*($upper+1)/2) - ($lower*($lower+1)/2);

    }

  }

?>

 

Passando arrays para uma função

Às vezes é necessário passar arrays inteiros para uma função. O PHP não suporta a sobrecarga (overload) de função, como em Delphi, por exemplo, mas com a ajuda de arrays, é possível construir soluções de contorno bem simples. O objetivo do exemplo da Listagem 3, é computar a média geométrica de um array de valores:

 

Listagem 3. Exemplo de passagem de array para funções

 

<?php

  $values = array(4, 3, 19, 23, 15);

  $result = geomean($values);

  echo "Resultado: $result<br>\n";

 

  function geomean($invalues){

    foreach ($invalues as $val){

      $sum += $val*$val;

    }

    return sqrt($val);

  }

?>

 

Em primeiro lugar, é criado um array que contém vários valores. A seguir, a função geomean é chamada e o array é passado para a mesma. A função geomean computa a soma das segundas potências dos valores no array. Depois disso, a raiz quadrada é computada e retornada para a função principal. O resultado será exibido na tela:

 

Resultado: 3.8729833462074

 

Retornando mais de um Valor

Até agora, lidamos com funções que retornam apenas um valor. Contudo, podemos ter funções que retornam vários valores. Vejamos no exemplo na Listagem 4.

 

Listagem 4. Retornado mais de um valor na função

 

<?php

  $values = array(4, 3, 19, 23, 15);

  $result = compute($values);

  foreach($result as $val){

    echo "valor: $val<br>\n";

...

Quer ler esse conteúdo completo? Tenha acesso completo