![]() |
|
|
|
|
9. VariáveisO modificador static Uma variável estática é visível num escopo local, mas ela é inicializada apenas uma vez e seu valor não é perdido quando a execução do script deixa esse escopo. Veja o seguinte exemplo: function Teste() { $a = 0; echo $a; $a++; } O último comando da função é inútil, pois assim que for encerrada a execução da função a variável $a perde seu valor. Já no exemplo seguinte, a cada chamada da função a variável $a terá seu valor impresso e será incrementada: function Teste() { static $a = 0; echo $a; $a++; } O modificador static é muito utilizado em funções recursivas, já que o valor de algumas variáveis precisa ser mantido. Ele funciona da seguinte forma: O valor das variáveis declaradas como estáticas é mantido ao terminar a execução da função. Na próxima execução da função, ao encontrar novamente a declaração com static, o valor da variável é recuperado. Em outras palavras, uma variável declarada como static tem o mesmo "tempo de vida" que uma variável global, porém sua visibilidade é restrita ao escopo local em que foi declarada e só é recuperada após a declaração. Exemplo: function Teste() { echo "$a"; static $a = 0; $a++; } O exemplo acima não produzirá
saída alguma. Na primeira execução da função,
a impressão ocorre antes da atribuição de um valor
à função, e portanto o conteúdo de $a é
nulo (string vazia). Nas execuções seguintes da função
Teste() a impressão ocorre antes da recuperação do
valor de $a, e portanto nesse
momento seu valor ainda é nulo. Para que a função
retorne algum valor o modificador static deve
ser utilizado.
Variáveis Variáveis O PHP tem um recurso conhecido como variáveis variáveis, que consiste em variáveis cujos nomes também são variáveis. Sua utilização é feita através do duplo cifrão ($$). $a = "teste"; $$a = "Mauricio costa"; O exemplo acima e equivalente ao seguinte: $a = "teste"; $teste = "Mauricio costa";
Variáveis enviadas pelo navegador Para interagir com a navegação
feita pelo usuário, é necessário que o PHP possa enviar
e receber informações para o software de navegação.
A maneira de enviar informações, como já foi visto
anteriormente, geralmente é através de um comando de impressão,
como o echo. Para receber informações vindas do navegador
através de um link ou um formulário html o PHP utiliza
as informações enviadas através da URL. Por exemplo:
se seu script php está localizado em "http://localhost/teste.php3"
e você o chama com a url "http://localhost/teste.php3?costa=teste",
automaticamente o PHP criará uma variável com o nome $costa
contendo a string "teste". Note que o conteúdo da variável
está no formato urlencode.
Os formulários html já enviam informações automaticamente
nesse formato, e o PHP decodifica sem necessitar de tratamento pelo programador.
URLencode O formato urlencode é obtido substituindo os espaços pelo caracter "+" e todos os outros caracteres não alfa-numéricos (com exceção de "_") pelo caracter "%" seguido do código ASCII em hexadecimal. Por exemplo: o texto "Testando 1 2 3 !!" em urlencode fica "Testando+1+2+3+%21%21" O PHP possui duas funções para tratar com texto em urlencode. Seguem suas sintaxes: string urlencode(string texto); string urldecode(string texto); Essas funções servem respectivamente
para codificar ou decodificar um texto passado como argumento. Para entender
melhor o que é um argumento e como funciona uma função,
leia o tópico "funções".
Variáveis de ambiente O PHP possui diversas variáveis
de ambiente, como a $PHP_SELF,
por exemplo, que contém o nome e o path do próprio arquivo.
Algumas outras contém informações sobre o navegador
do usuário, o servidor http, a versão do PHP e diversas informações.
Para ter uma listagem de todas as variáveis e constantes de ambiente
e seus respectivos conteúdos, deve-se utilizar a função
phpinfo().
Verificando o tipo de uma variável Por causa da tipagem dinâmica
utilizada pelo PHP, nem sempre é possível saber qual o tipo
de uma variável em determinado instantese não contar com
a ajuda de algumas funções que ajudam a verificar isso. A
verificação pode ser feita de duas maneiras:
Função que retorna o tipo da variável Esta função é a gettype. Sua assinatura é a seguinte: string gettype(mixed var); A palavra "mixed" indica que a variável var pode ser de diversos tipos. A função gettype
pode retornar as seguintes strings: "integer", "double",
"string", "array", "object" e "unknown type".
Funções que testam o tipo da variável São as funções is_int, is_integer, is_real, is_long, is_float, is_string, is_array e is_object. Todas têm o mesmo formato, seguindo modelo da assinatura a seguir: int is_integer(mixed var); Todas essas funções
retornam true se a
variável for daquele tipo, e false
em caso contrário.
Destruindo uma variável É possível desalocar uma variável se ela não for usada posteriormente através da função unset, que tem a seguinte assinatura: int unset(mixed var); A função destrói
a variável, ou seja, libera a memória ocupada por ela, fazendo
com que ela deixe de existir. Se mais na frente for feita uma chamada á
variável, será criada uma nova variável de mesmo nome
e de conteúdo vazio, a não ser que a chamada seja pela função
isset. Se a operação
for bem sucedida, retorna true.
Verificando se uma variável possui um valor Existem dois tipos de teste que podem ser feitos para verificar se uma variável está setada: com a função isset e com a função empty. A função isset Possui o seguinte protótipo: int isset(mixed var); E retorna true
se a variável estiver setada (ainda que com uma string vazia ou
o valor zero), e false em caso
contrário.
A função empty Possui a seguinte assinatura: int empty(mixed var); E retorna true se a variável não contiver um valor (não estiver setada) ou possuir valor 0 (zero) ou uma string vazia. Caso contrário, retorna false.
voltar
|