TUTORIAIS DE PHP
 
Funções
Variáveis
Definindo funções
 

A sintaxe básica para definir uma função é:

function nome_da_função([arg1, arg2, arg3]) {
Comandos;
... ;
[return <valor devolvido>];
}

Qualquer código PHP válido pode estar contido no interior de uma função. O tipo devolvido não deve ser declarado, sendo necessário que o programador esteja atento para que a função devolva o tipo desejado. É recomendável que esteja tudo bem documentado para facilitar a leitura e compreensão do código. Para efeito de documentação, utiliza-se o seguinte formato de declaração de função:

tipo function nome_da_funcao(tipo arg1, tipo arg2, ...);

Este formato só deve ser utilizado na documentação do script, pois o PHP não aceita a declaração de tipos. Isso significa que em muitos casos o programador deve estar atento aos tipos dos valores passados como parâmetros, pois se não for passado o tipo esperado não é emitido nenhum alerta pelo interpretador PHP, já que este não testa os tipos.

Valor de retorno

Toda a função pode opcionalmente devolver um valor, ou simplesmente executar os comandos e não devolver nenhum valor.
Não é possível que uma função devolva mais do que um valor, mas é permitido fazer com que uma função devolva um valor composto, como listas ou arrays.

Argumentos

É possível passar argumentos para uma função. Devem ser declarados logo após o nome da função, entre parênteses, e tornam-se variáveis locais da função. A declaração do tipo de cada argumento também é utilizada apenas para efeito de comentário.

Exemplo:

function imprime($texto){
echo $texto;
}

imprime("teste de funções");

Passagem de parâmetros por referência

Normalmente, a passagem de parâmetros em PHP é feita por valor, ou seja, se o conteúdo da variável for alterado, essa alteração não afeta a variável original.

Exemplo:

function mais5($numero) {
$numero += 5;
}

$a = 3;
mais5($a); //$a continua a valer 3

No exemplo acima, como a passagem de parâmetros é por valor, a função mais5 é inútil, já que após a execução sair da função o valor anterior da variável é recuperado. Se a passagem de valor fosse feita por referência, a variável $a teria 8 como valor. O que ocorre normalmente é que ao ser chamada uma função, o interpretador salva os conteúdos das variáveis. Se uma dessas variáveis for passada como parâmetro, o seu conteúdo fica preservado, pois a função irá trabalhar na verdade com uma cópia da variável. Porém, se a passagem de parâmetros for feita por referência, toda alteração que a função realizar no valor passado como parâmetro afetará a variável que o contém.
Há duas maneiras de fazer com que uma função tenha parâmetros passados por referência:indicando isso na declaração da função, o que faz com que a passagem de parâmetros seja sempre assim;e também na própria chamada da função. Nos dois casos utiliza-se o modificador "&". Vejamos um exemplo que ilustra os dois casos:

function mais5(&$num1, $num2) {
$num1 += 5;
$num2 += 5;
}

$a = $b = 1;
mais5($a, $b);

Neste caso, só $num1 terá seu valor alterado, pois a passagem por referência está definida na declaração da função.


mais5($a, &$b);

Aqui as duas variáveis terão seus valores alterados.


Argumentos com valores pré-definidos (default)

Em PHP é possível ter valores default para argumentos de funções, ou seja, valores que serão assumidos no caso de nada ser passado no lugar do argumento. Quando algum parâmetro é declarado desta maneira, a passagem do mesmo na chamada da função torna-se opcional.

function teste($vivas = "testando") {
echo $vivas;
}

teste(); // imprime "testando"
teste("outro teste"); // imprime "outro teste"

Quando a função tem mais do que um parâmetro, o que tem valor default deve ser declarado em último:

function teste($figura = circulo, $cor) {
echo "a figura é um ", $figura, " de cor " $cor;
}

teste(azul);

A função não vai funcionar da maneira esperada, ocorrendo um erro no interpretador. A declaração correcta é:

function teste2($cor, $figura = circulo) {
echo "a figura é um ", $figura, " de cor " $cor;
}

teste2(azul);

Aqui a funcao funciona da maneira esperada, ou seja, imprime o texto: "a figura é um círculo de cor azul"

 
Contexto
 

O contexto é o conjunto de variáveis e seus respectivos valores num determinado ponto do programa. Na chamada de uma função, ao iniciar a execução do bloco que contém a implementação da mesma é criado um novo contexto, contendo as variáveis declaradas dentro do bloco, ou seja, todas as variáveis utilizadas dentro daquele bloco serão eliminadas no final da execução da função.

 
Escopo
 
O escopo de uma variável em PHP define a porção do programa onde ela pode ser utilizada. Na maioria dos casos todas as variáveis têm escopo global. Entretanto, em funções definidas pelo utilizador um escopo local é criado. Uma variável de escopo global não pode ser utilizada no interior de uma função sem que haja uma declaração.

Exemplo:

$vivas = "Testando";

function Teste() {
echo $vivas;
}

Teste();

O codigo acima não produzirá saída alguma, pois a variável $vivas é de escopo global, e não pode ser referida num escopo local, mesmo que não haja outra com nome igual que tape a sua visibilidade. Para que o script funcione da forma desejada, a variável global a ser utilizada deve ser declarada.

Exemplo:

$vivas = "Testando";

function Teste() {
global $vivas;
echo $vivas;
}

Teste();

Uma declaração "global" pode conter várias variáveis, separadas por vírgulas. Uma outra maneira de aceder a variáveis globais dentro de uma função é utilizar um array pré-definido pelo PHP cujo nome é $GLOBALS. O índice para a variável referida é o proprio nome da variável, sem o caracter $. O exemplo acima e o abaixo produzem o mesmo resultado:

Exemplo:
$vivas = "Testando";

function Teste() {
echo $GLOBALS["vivas"]; // imprime $vivas
echo $vivas; // não imprime nada
}

Teste();

 
 
Variáveis

ANÚNCIOS

 



 
 
 
  Tutoriais | Fóruns de Discussão | Notícias | Jogos | Dicas | Flash | Downloads | Livros
Gifs Animados | Loja Online | Publicitar no Truques e Dicas | Contactos