![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Autor: | Almir Farias Rivas Junior |
| Data: | 15-03-2006 |
| Categoria: | Programação Web |
| Assunto: | PHP - BÁSICO |
| Visitas: | 5149 |
Objetivos:
Neste artigo iremos mostrar algumas outras operações possíveis de se fazer com funções que podem ajudar você no desenvolvimento de aplicações
Pré-requisitos:
Ter estudados os artigos anteriores ou ter alguma experiência com PHP.
Nota: Este tutorial faz parte do Curso: PHP & MySQL.
Funções variáveis
O PHP permite que você coloque nome de funções dentro de uma variável e a execute da mesma forma que executaria a função.
Veja o código abaixo:

Fig. 1 - Primeira parte do script code1701.php
Fig. 2 - Segunda parte do script code1701.php
Entre as linhas 11 e 24 definimos três funções que recebem um parâmetro e os imprime entre as <H1>, <H2> ou <H3>.
Na linha 28 iniciamos um loop que varre o bloco de código do for por 3 vezes. Na linha 33 cada valor da variável $contador faz com que seja atribuído a variável $funcaoVariavel o nome da função que será executada na linha 56 e ainda o valor atribuído a variável $msg que será passada como parâmetro.
Na linha 56 a variável $funcaoVarial é executada de acordo com a função que ela representa. Veremos de acordo com o resultado abaixo que as 3 funcoes são executadas.

Fig. 3 Resultado do script code1701.php
Burlando o escopo de variável
No último artigo mostramos como funciona o escopo das variáveis. Existem formas de burlar o funcionamento padrão. Veja o código abaixo:
Fig. 4 Listagem do script code1702.php
No script acima foi definida uma função entre as linhas 14 e 18 que tenta imprimir a variável $mensagem. Como já vimos isto anteriormente a função acaba por não imprimir nada.
Também no script acima é definido uma função imprimindoMensagenNovamente que tenta imprimir também a variável $mensagem , porém desta vez, antes de tentar a impressão se utiliza o comando global para poder acessar os valores das variáveis globais. E com este comando se permite acesso aos dados da variável.
Temos que ter cuidado. Pois se esta variável for alterada dentro da função as alterações se refletirão fora dela.
Veja o resultado do script acima:

Fig. 5 Resultado do script code1702.php
Outra forma de burlar o escopo
Utilizando o comando static também é possível recuperar o valor anterior de uma variável.
Veja o código abaixo:
Fig. 6 Listagem do script code1703.php
A linha 11 declara a função contador.
Na linha 13 inicializamos a variável $contador atribuindo a ela o valor 0 e usando o comando static. Com este comando iremos permitir que a variável lembre-se do valor armazenado cada vez que chamarmos a função.
Na linha 15 incrementamos a variável $contador.
Na linha 17 imprimimos o valor da variável $contador.
Nas linhas 23, 25, 27, 29 e 31 executamos a função e de acordo com o resultado mostrado abaixo podemos verificar que o valor da variável $contador declarada com o comando static dentro da função é lembrado a cada vez que a chamamos. Isto possibilita sabermos quantas vezes a função foi executada/chamada.
Veja o resultado na figura abaixo:

Fig. 7 Resultado do script code1703.php
Para ver os scripts em ação clique nos links abaixo:
http://www.showy.com.br/~tutorial/artigos/phpbasico/17/code1701.php
http://www.showy.com.br/~tutorial/artigos/phpbasico/17/code1702.php
http://www.showy.com.br/~tutorial/artigos/phpbasico/17/code1703.php
Para baixar os scripts clique no link abaixo:
http://www.showy.com.br/~tutorial/artigos/phpbasico/17/code17.zip
Até o próximo artigo,
Almir Rivas
LISTA DE TODOS OS TUTORIAIS DISPONÍVEIS