Jump to content
Sign in to follow this  
max

substituir o valor de variaveis

Recommended Posts

max

Boas, eu simplifiquei este meu script só para vos explicar a minha duvida,

imaginem que tenho o seguinte:

$cor1 = "azul";

$cor2 = "verde";

$cor4 = "amarelo";

for ($i=1; $i < 4; $i++)

{

$texto = "$"."cor"."$i";

echo $texto;

}

Eu queria que o output disto fosse:

azul

verde

amarelo

Mas dá-me sempre: $cor1 $cor2 $cor3

Estou habituado a programar em actionscript, e aí usava o eval, mas... o eval do php é diferente, tentei e não consegui, alguém me consegue ajudar??

Obrigado

Share this post


Link to post
Share on other sites
David Pintassilgo

eu nao precebo nada de PHP,..mas ver se posso ajudar:

em vez de te sair o conteudo da variavel, sai-de o nome da variavel, é isso?

não será pelas "" ?


cool stuffs to check.

http://blog.zxcoders.com//

Share this post


Link to post
Share on other sites
vbmaster

Eu faria:

"

$cor1 = "azul";

$cor2 = "verde";

$cor4 = "amarelo";

for ($i=1; $i < 4; $i++)

echo $cor(i);

}

"

Mas eu não sei nada de pascal. :D

Share this post


Link to post
Share on other sites
Lancaster
Boas, eu simplifiquei este meu script só para vos explicar a minha duvida,

imaginem que tenho o seguinte:

$cor1 = "azul";

$cor2 = "verde";

$cor4 = "amarelo";

for ($i=1; $i < 4; $i++)

{

$texto = "$"."cor"."$i";

echo $texto;

}

Eu queria que o output disto fosse:

azul

verde

amarelo

Mas dá-me sempre: $cor1 $cor2 $cor3

Estou habituado a programar em actionscript, e aí usava o eval, mas... o eval do php é diferente, tentei e não consegui, alguém me consegue ajudar??

Obrigado

Heyas all....

EDIT: Afinal não é assim tão fácil como isso...tou para aqui a testar, e tb não consegui, porque o que estás a meter na var $texto é simplesmente texto...tb andei para aqui a experimentar as plicas..e tb não deu em nada...mas vou martelar nisto uma beca a ver se sai alguma coisa..

Mas eu não sei nada de pascal. :D

Ermm...isto é PHP... :D

Hasta all...

EDIT2: Não sei se te serve ou não..mas porque não pores array nisso...não sei se é possivél ou não..mas acho que é uma boa opção...


http://www.mundodotio.com/ Um mundo à parte...ou então não..http://programming.mundodotio.com/ A vida de um programador WEB

Share this post


Link to post
Share on other sites
Bruno

Há uma função q n me recorda o nome q recebe a string do nome da variavel e devolve o valor.... tipo:

xpto("cor".i);

(não me recordo do nome da função...mas já a usei)

Outro modo é criares um vector... $cor[3] :D

Share this post


Link to post
Share on other sites
vbmaster
Boas, eu simplifiquei este meu script só
Mas eu não sei nada de pascal. :D

Ermm...isto é PHP... :D

Hasta all...

LOL!, sorry o engano, também começava por 'P'.

Eu já tive utilidade de fazer cenas assim em vb e nunca consegui tendo de susbtituir códigos por ínumeros if's.

É capaz de haver uma solução mas não conheço mesmo :|

Fiquem bem :D :D :D

Share this post


Link to post
Share on other sites
satanuke

max...tenta fazer assim, aqui resulta :

<?php
$cor1 = "azul";
$cor2 = "verde";
$cor3 = "amarelo";

for ($i=1; $i < 4; $i++)

{
$texto = ${"cor".$i};
echo $texto."<br>";
}
?>

Eu normalmente nestes casos uso arrays, mas isto é apenas um exemplo que escreveste porque querias chamar uma variavel sem chamar directamente pelo nome dela.

Share this post


Link to post
Share on other sites
Grettir

Heyas,

exactamente como ja disseram...o teu retorno é $cor1, $cor2 ... porque estas a dizer

$texto = "$"."cor".$i

estas a afirmar que a variavel texto tera um valor do tipo string.

É preferivel fazeres isso com Arrays. É sempre mais facil criar um ciclo que percorra TODA a Array, do que um ciclo que percorra uma serie de variaveis independentes.

Fica bem


Ricardo Castelhano

-----------------------

FullStack Developer

Technical Manager

Trainer

Share this post


Link to post
Share on other sites
max

grettir, eu não usei arrays porque eu simplifiquei o script...

na realidade o cor1, cor2, cor 3 são leituras de base de dados... eu não pus isso aqui no codigo para facilitar a vossa leitura e tentar que ficasse um codigo o mais simples possivel

Eu não conseguia porque estava a tentar fazer como no flash:

texto = eval("cor"+i);

mas no php o eval funciona de maneira diferente.

O exemplo do satanuke funcionou na perfeição...

Dá para aquilo que eu queria!!

Obrigado aos que responderam,

Max

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.