03.11
Variável Variável
Gerar variáveis dinâmicas no PHP é um poderoso recurso que a linguagem provê aos desenvolvedores, ao que chamamos esse recurso(conceito) de “variável variável”, ou seja, utilizar o conteúdo de uma variável para realizar uma nova atribuição como nome de uma nova variável.
Exemplo Prático
Imaginemos um formulário com os seguintes campos:
- Nome
- DDD
- Telefone
Agora como você faria para realizar as atribuições dos valores recebidos através do $_POST para as variáveis, criaria uma variável de cada vez para fazer a atribuição dos valores? Dessa forma:
- $nome = $_POST[nome];
- $email = $_POST[email];
- $ddd = $_POST[ddd];
- $telefone = $_POST[telefone];
Moleza né, mas e se o formulário possuir 50 campos, vai dar um trabalho lazarento pra atribuir esses valores as respectivas variáveis, por isso criaremos variáveis dinâmicas para evitar todo esse trabalhão.
Para tal tarefa é necessário que entendendamos o conceito de como funcionam as tais “variáveis variáveis”, assumindo que toda variável em PHP é obrigatoriamente precedida de um cifrão($), e uma variável dinâmica é precedida de dois ou mais de dois cifrões ($$), e com isso partimos para a implementação de váriaveis dinâmicas a partir de um $_POST do nosso formulário.
1 //campos do formulario2 $campos_formulario = array("nome", "email", "ddd", "telefone");3 4 //gera as variaveis dinamicamente5 foreach($campos_formulario as $campo){6 $$campo = $_POST[$campo];7 }
Repare que na linha 2 criei um array com todos os respectivos “names” dos campos do formulário, para que assim possamos realiazar as atribuções dinâmicamente através de um loop que percorre todo esse array, mas a mágica acontece na linha 6, onde aplicamos esse recurso.
Neste trecho, na primeira passada do loop, a variável $$_campo é criada com o nome do conteúdo do nosso array. Qual foi mesmo o nosso primeiro indíce no array…!? Isso mesmo, o primeiro indíce de nosso array foi “nome”, o que significa que $$_campo está acessando o conteúdo de nosso array e criando a “variável nome” e atribuindo o valor respectivo através do $_POST[$campo], que nada mais é do que o name do campo no formulário.
Obs: Para que funcione perfeitamente é necessário que os valores dos indíces do array sejam respectivamentes iguais ao names dos formulários e que estejam na mesma ordem.
Não há comentários ainda.
Deixe seu comentário