Tutorias

Welcome Guest

Search:


Variáveis 2

por: admin
Total visitas: 250
Palavras: 2196

 Modificador static
   
  Uma variável estática é visível num escopo local, mas é 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 o seu valor. Já no exemplo seguinte, a cada chamada da função a variável $a terá o seu valor impresso e será incrementado:

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.
Noutras palavras, uma variável declarada como static tem o mesmo "tempo de vida" que uma variável global, porém a 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 o 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 Vivas";

O exemplo acima é equivalente ao seguinte:

$a = "teste";
$teste = "Mauricio Vivas";

   
  Variáveis enviadas pelo browser
   
 

Para interagir com a navegação feita pelo utilizador, é necessário que o PHP possa enviar e receber informações para o browser. 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 browser através de um link ou um formulário html o PHP utiliza as informações enviadas através do URL. Por exemplo: se um script php está localizado em "http://localhost/teste.php3" e é chamado com a url "http://localhost/teste.php3?vivas=teste", automaticamente o PHP criará uma variável com o nome $vivas 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 descodifica sem necessitar de qulquer tratamento por parte do 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 "Testar 1 2 3 !!" em urlencode fica "Testar+1+2+3+%21%21"

O PHP possui duas funções para tratar o texto em urlencode. Seguem as 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 ficheiro. Algumas outras contém informações sobre o browser do utilizador, 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 atribuição dinâmica do tipo, utilizada pelo PHP, nem sempre é possível saber qual o tipo de uma variável em determinado instante se não contar com a ajuda de algumas funções que permitem 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. A sua sintaxe é 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 devolver 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 a sintaxe:

int is_integer(mixed var);

Todas estas funções devolvem true se a variável for daquele tipo, e false em caso contrário.

   
  Destruir 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 sintaxe:

int unset(mixed var);

A função destrói a variável, ou seja, liberta a memória ocupada por ela, fazendo com que ela deixe de existir. Se mais á frente a variável for chamada, será criada uma nova variável do 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.

   
  Verificar se uma variável possui um valor
   
 

Existem dois tipos de teste que podem ser feitos para verificar se uma variável tem um valor: com a função isset e com a função empty.

A função isset

Possui a seguinte sintaxe:

int isset(mixed var);

E retorna true se a variável estiver preenchida (ainda que com uma string vazia ou o valor zero), e false em caso contrário.

 

A função empty

Possui a seguinte sintaxe:

int empty(mixed var);

E retorna true se a variável não contiver um valor (não estiver preenchida) ou possui valor 0 (zero) ou uma string vazia. Caso contrário, retorna false.

Sobre o Autor

Administrador


Votação: Not yet rated

Comentários

Nenhum comentário adicionado.

Adicionar comentário

Não tem permissão para inserir comentários. Se fizer Log in, tem a possibilidade de comentar.