Mudar nome de variavel

89 views
Skip to first unread message

GenioSan

unread,
Mar 8, 2009, 8:01:19 PM3/8/09
to php-brasil
Olá pessoal

existe alguma forma para mudar o final do nome de uma variavel?

exemplo preciso imprimir varias variaveis que muda só o final

tipo
$boxvenda1, $boxvenda2, $boxvenda3, $boxvenda4, $boxvenda5.....

fiz desta maneira só que num deu certo
$cont = 1;
while( $cont < 100){

echo $boxvenda.$cont;
$cont++;

}
alguem poderia me ajudar...

Everton Fraga

unread,
Mar 9, 2009, 8:43:57 AM3/9/09
to php-b...@googlegroups.com
Existe uma parada que se chama "variável variável". Assim como fazia lááá no AS, vc pode montar o nome da variável como String. O pulo do gato está no $$. 


E no seu caso seria algo do tipo:

for($i = 0; $i < 10; $i++){

$nome_variavel = 'box_venda' . $i;

echo $$nome_variavel;

}

E isto, magicamente, irá gerar o que vc quer :)







Everton Fraga
+55 21 9927-9999


2009/3/8 GenioSan <geni...@ig.com.br>

Ninetails - Carlos Kazuo

unread,
Mar 9, 2009, 1:34:34 PM3/9/09
to php-b...@googlegroups.com
for($i=0;$i<10;$i++) var_dump(${"box_venda".$i});

então... lembrando que não é nada recomendável fazer isso...
vc poderia transformar todas essas variáveis e agrupá-las em um só
vetor, que ficaria algo como $box_venda[0], $box_venda[1]

--------------------------------------------------
Carlos Kazuo - Ninetails
ninetails.nine [at] gmail.com



2009/3/9 Everton Fraga <evert...@gmail.com>:

Vinicius Salsotto

unread,
Mar 10, 2009, 1:34:58 PM3/10/09
to php-brasil
Bem desconheço a técnica que o Everton citou, então não posso dizer se
é bom ou não, mas o que o ninetails disse é o mais recomendavel:

//faca aqui as atribuicoes dos valores

$nome_variavel[0] = "indice 0";
$nome_variavel[1] = "indice 1";
$nome_variavel[2] = "indice 2";
$nome_variavel[3] = "indice 3";


se voce souber até quando você vai precisar fazer o loop, tudo bem,
mas se não souber, não coloque um numero alto aleatorio, tipo 100,
descubra até quando voce precisa fazer o loop, para evitar
processamento desnecessario.


$total = count($nome_variavel);


depois imprima o vetor


for($i = 0; $i < $total; $i++){

echo $nome_variavel[$i];

}


;D


On 9 mar, 14:34, Ninetails - Carlos Kazuo <ninetails.n...@gmail.com>
wrote:
> for($i=0;$i<10;$i++) var_dump(${"box_venda".$i});
>
> então... lembrando que não é nada recomendável fazer isso...
> vc poderia transformar todas essas variáveis e agrupá-las em um só
> vetor, que ficaria algo como $box_venda[0], $box_venda[1]
>
> --------------------------------------------------
> Carlos Kazuo - Ninetails
> ninetails.nine [at] gmail.com
>
> 2009/3/9 Everton Fraga <evertonf...@gmail.com>:
>
> > Existe uma parada que se chama "variável variável". Assim como fazia lááá no
> > AS, vc pode montar o nome da variável como String. O pulo do gato está no
> > $$.
> > Primeiro, dá uma lida: http://www.prophp.com.br/artigo_10.php
> > E no seu caso seria algo do tipo:
> > for($i = 0; $i < 10; $i++){
> > $nome_variavel = 'box_venda' . $i;
> > echo $$nome_variavel;
> > }
> > E isto, magicamente, irá gerar o que vc quer :)
>
> > Everton Fraga
> > +55 21 9927-9999
>
> > 2009/3/8 GenioSan <genio...@ig.com.br>

maiquel krolikowski leonel

unread,
Mar 10, 2009, 5:23:58 PM3/10/09
to php-b...@googlegroups.com
O nome correto é Variaval Variante
o conceito é o mesmo

ele cria uma variavel usando o conteudo de outra como nome

por exemplo

$var = 'teste';
$$var = 1;
echo $teste;  // exibe 1

é bom nesses casos ou para listagens tb....

2009/3/10 Vinicius Salsotto <vinicius...@gmail.com>

Matheus Eduardo

unread,
Mar 10, 2009, 7:57:17 PM3/10/09
to php-b...@googlegroups.com
Variáveis variáveis: http://br2.php.net/manual/pt_BR/language.variables.variable.php
tem aí na documentação. conceito básico.

2009/3/10 Vinicius Salsotto <vinicius...@gmail.com>

Hugo Tanure

unread,
Mar 10, 2009, 8:12:00 PM3/10/09
to php-b...@googlegroups.com

Na minha opinião, a opção de Everton é a melhor.

--

Hugo Tanure

Vinicius Salsotto

unread,
Mar 11, 2009, 9:26:00 AM3/11/09
to php-brasil
Desconhecia esse conceito de "variaveis variaveis", mas achei bem
interessante!

é bem simples mesmo!


Mais conhecimento sempre é bem vindo!


;D
Reply all
Reply to author
Forward
0 new messages