Archive for February, 2010

Funções – Parte VII – Finalizando Funções

As funções são um dos componentes mais utilizados da linguagem PHP (ou, talvez, de qualquer linguagem de programação). Sem eles, seria praticamente impossível escrever códigos reutilizáveis ou mesmo o uso de técnicas de programação orientada a objetos (Que veremos mais a frente).

Por esta razão, você deve prestar bastante atenção, não só nos princípios da declaração da função,
mas também nas implicações ligeiramente menos óbvias de elementos como a passagem de argumentos por referência e comprimento variável da lista de argumentos.

Se quiser rever algo sobre funções:

Funções
Funções – Parte I – Sintaxe Básica
Funções – Parte II – Retornando Valores
Funções – Parte III – O escopo da variável
Funções – Parte IV – Passando argumentos
Funções – Parte V – Comprimento variável da lista de argumentos
Funções – Parte VI – Passar argumentos por referência

Funções – Parte IV – Passando argumentos

Ainda sobre o escopo da variável, falaremos agora um pouco mais sobre passagem de argumento, ela permite inserir um número arbitrário de valores em uma função, a fim para influenciar no seu comportamento:

<?
function ola($quem)
{
echo “Olá $quem”;
}
ola(“mundo”);
/* Aqui nós passamos um valor, “mundo”, e a função exibe “Olá mundo”*/
?>

Você pode definir qualquer quantidade de argumentos, na verdade, você pode passar um número arbitrário de argumentos para uma função, independentemente do número especificado na sua declaração.
PHP não irá reclamar a menos que você forneça menos valores do que você declarou.

Além disso, você pode fazer argumentos opcionais, dando-lhes um valor padrão.
Argumentos opcionais devem ser mais direito na lista e só pode tomar valores simples expressões não são permitidas:

<?
function ola($quem = “mundo”)
{
echo “Olá $quem”;
}
ola();
/* Agora nós NÃO PASSAMOS o argumento e a variável $quem IRÁ assumir o valor padrão “mundo”. */

ola(“Filippe”);
/* Agora nós PASSAMOS o argumento e a variável $quem NÃO IRÁ assumir o valor padrão “mundo”. */
?>