www.samueldiasneto.com: Tutorial PHP

<<< Voltar Avançar >>>

12. Funções

Declarando uma função

function NOME(PARÂMETROS)
  {
  
    COMANDOS
  
  }

OBSERVAÇÃO: Por convenção os nomes de função em PHP devem ser em letras minúsculas

Chamando uma função

NOME(PARÂMETROS);

Onde colocar as funções

As funções pré-definidas do PHP estão disponíveis para todos so scripts, porém a função definida pelo programador só está disponível no script onde ela foi declarada. Assim, você deve criar um arquivo .inc com as declarações das funções usadas em sua aplicação e introduzir este arquivo no script com require().

Parâmetros opcionais

Ao declarar a função, os parâmetros que você atribuir valores serão opcionais. Exemplo:

function tabela($dados, $border=1, $cellpadding=2, $cellspacing=2)
  {
    echo "<table border='$border' cellpadding='$cellpadding'
         ." cellspacing='$cellspacing'>";
    reset($dados);
    $valor = current($dados);
    while($valor)
      {
        echo "<tr><td>$valor</td></tr>\n";
	$valor = next($dados);
      }
    echo "</table>";
  }

na função acima, os parâmetros border, cellpadding e cellspacing são opcionais. Se estes não forem passados na chamada da função, os valores padrão definidos aqui na declaração serão assumidos.

É importante observar que os parâmetros são posicionais, assim se na chamada da função nenhuma parâmetro opcional for passado tudo bem. Porém, caso o programador queira passar o parâmetro cellspacing, terá que passar algum valor para border e cellpadding também. É por isso também que os parâmetros opcionais devem estar depois dos obrigatórios.

Escopo de variáveis

Como alterar o valor de um argumento passado para uma função

Se quisermos alterar o valor de uma variável passada como argumento para uma função devemos, na declaração da função, definir a passagem do argumento por referência. Para isto basta colocar um & antes do nome da variável. Exemplo:

// passagem por valor (tradicional)
function acrescenta($valor,$incremento=1)
  {
    $valor = $valor + 1;
  }

Com a declaração acima o código abaixo não alterará o valor da variável:

$valor = 10;
acrescenta($valor);
echo $valor;

$valor será 10.

Já com esta declaração:

// passagem por referência (altera o valor do argumento passado)
function acrescenta(&$valor,$incremento=1)
  {
    $valor = $valor + 1;
  }

Ao executar o trecho de código:

$valor = 10;
acrescenta($valor);
echo $valor;

$valor será 11.

Saindo da função

Para sair da função use o comando return. Este comando pode ser usado apenas para o retorno, como também pode ser usado para retornar com um determinado valor.

return;

return $valor;

Recursão

Apesar de PHP suportar funções recursivas, estas devem ser evitadas pois são lentas e utilizam mais memória que a iteração. Sempre que possível prefira a iteração.

<<< Voltar Avançar >>>