|
|
Funções 2
por: admin
Total visitas: 178
Palavras: 1655
|
Definindo funções function nome_da_função([arg1, arg2, arg3]) { 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. 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){ 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) { $a = 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. function mais5(&$num1, $num2) { $a = $b = 1; Neste caso, só $num1 terá seu valor alterado, pois a passagem por referência está definida na declaração da função.
Aqui as duas variáveis terão seus valores alterados.
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") { teste(); // imprime "testando" 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) { 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) { 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() { 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() { 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: function Teste() { Teste(); |
Sobre o Autor
Administração
Votação: Not yet rated
