+1

Variáveis Variáveis

criado por Marcelo Pereira Fonseca da Silva em 05/12/2003 9:27am
Conforme a dica do Ragen e do Silvano no artigo sobre referência aqui vai a dica de
como trabalhar com isso com a register_globals do php.ini setada como off

<?php
$a = &$_GET['foo']; 
?>

e então $$a iria conter o conteúdo do vetor por referência e provavelmente com isso dê para trabalhar com a register_globals setada como off.

Não vou fazer um script completo para deixar a imaginação de cada um fluir e termos aqui bons exemplos de como melhorar a idéia proposta acima.

Abraços e até o próximo artigo!

Comentários:

Mostrando 1 - 10 de 10 comentários
Parabéns Marcelo pelo Artigo.
Essa parte eu nunca havia visto no manual do PHP, realmente por desinteresse. Mas, através do artigo, conheci novas formas o qual não conhecia e estão sendo úteis, como a $var{$var}. Abraços
17/02/2004 12:42pm (~20 anos atrás)

Escrever é dificil pra caramba.. apesar de ter pego alguns exemplos do php.net e ter tentando passar um exemplo é realmente um assnuto complicado..

Valeu novamente pelos comentários.. que muitas vezes agregam valores aos artigos :)
14/12/2003 6:28pm (~20 anos atrás)

Uso esse sistema em meu site.
Estoco as variaveis num arquivo config que incluo nos arquivos do site.
Cada variavel dessa tem um nome e o valor (url).

O que faco e basicamente isso:

-Os links saum desta forma

<a href="?g=principal">
?g=downloads
?g=contato

- ai faco isso:

$go = $_GET['g'];
$add = $$go;

<iframe src=<?=$add?>>

- ai se g=downloads, ele ira procurar pela var downloads e usara seu valor na iframe.



É claro que eu trato os dados que sao provenientes do GET que podem ser perigosos, mas é ate seguro, pois os enderecos sao definidos pelas variveis do config.
13/12/2003 4:14pm (~20 anos atrás)

Concordo com vc, mas acho que ele foi explicativo o suficiente, o problema e que um iniciante naum dispoe de muita logica de programacao, entao fica dificil entender algo tao abstrato, mas acho que ele explico muito bem sim

uma explicacao rapida:

como $a = "ola";
entao
$$a sera $ola pois $a contido em $$a, sera interpretado com "ola", ja que $a vale "ola"

acho que e basicamente isso...
talvez faltaram mais exemplos de uso, pois sao enormes os seus usos
13/12/2003 4:00pm (~20 anos atrás)

Legal, Parabens!!
Agora um iniciante não entenderia muito bem o assunto não, podia ser mais explicativo.

No mais, tudo bem.

;)
13/12/2003 12:11pm (~20 anos atrás)

Bom, eu formulei algo aki, nao testei ainda nao, mas talvez funcione...
Seria legal definir tb, quantos checkboxs há, por meio de uma var e passá-la pelo form
Outra coisa, que nao pus no codigo abaixo, seria o uso, por seguranca, de ${$a}check, em vez de $$a, para que o 'usuario' nao saiba os nomes da variveis a qual se esta atribuindo o valor dos checks


<?php
$num = $_POST['num']; // numero de checkboxs
$a = "ck_$x";

for($x=0;$x<$num;$x++){
$$a = $_POST[$a];
}
?>
08/12/2003 4:11pm (~20 anos atrás)

Nunca havia tentado fazer isso com classes, mas achei super interessante a idéia.. bem Legal David !

Valeu pela dica
06/12/2003 7:18am (~20 anos atrás)

Diogo Gomes disse:
Bem lembrado David, já vi um script de um cara que usava as funções dele assim, de acordo com o que vinha de um GET que estava no link ele fazia um switch e nele tinha uma variável com o nome da função, daí ele só chamava a função depois do switch, muito útil...

Isso eu vi no início do meu aprendizado, e até aí eu nunca tinha visto nada muito útil com o switch... Como o bichinho é bom...
06/12/2003 6:49am (~20 anos atrás)

Lembrando ainda que esse tipo de tratativa com as variáveis pode ser usada para funções e classes. Por exemplo:

$func = "foo";
echo $func($arg1,$arg2,...);

$class= "bar";
$foo = new $class();

--db
05/12/2003 8:22pm (~20 anos atrás)

Diogo Gomes disse:
Gostei do artigo, isso é problema frequente nas listas e fóruns de php, pode ajudar bastante. Sobre as variáveis variáveis, este sim é um recurso interessante do php, e paar utilizar é bem parecido com a manipulação dos valores e das chaves de arrays. Esse é o nosso php...
05/12/2003 3:48pm (~20 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)