| <<< 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
- Variáveis locais - são declaradas e visualizadas dentro da função
- Variáveis globais - são declaradas e visualizadas fora da função. Não são vistas dentro da função.
- Variáveis superglobais - são visíveis interna e externamente. São pré-definidas pelo PHP.
- A palavra-chave global torna uma variável local com escopo global.
- O comando unset() exclui uma variável.
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 >>> |