Foros del Web » Programando para Internet » PHP »

variables compuestas

Estas en el tema de variables compuestas en el foro de PHP en Foros del Web. Hola!! Desde ya gracias por su atención, ayuda. No se si apliqué el nombre "variables compuestas", pero es lo mejor que se me ocurrió :), ...
  #1 (permalink)  
Antiguo 28/07/2010, 08:25
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 1 mes
Puntos: 1
variables compuestas

Hola!!

Desde ya gracias por su atención, ayuda.

No se si apliqué el nombre "variables compuestas", pero es lo mejor que se me ocurrió :), porque lo que necesito es formar el nombre de una variable con cadenas + el valor de otras variables, de la forma:

$cont=1
$aux=1

que el nombre de la variable se forme con:

"parteuno".$cont."partedos".$aux,

para formar una variable que se llame $parteuno1partedos1 y poder hacer una comparación con el valor de esa variable, que es donde ya no sé como hacerlo, estuve checando lo de variables variables pero creo no aplica a esto.
  #2 (permalink)  
Antiguo 28/07/2010, 08:36
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: variables compuestas

nose si entendi bien.. pero por lo general eso se hace con arrays.. aunque como lo tienenes de duda
puedes utilizar variables variables

Código PHP:
Ver original
  1. $parteuno1partedos1 = "foobar";
  2. $cont=1
  3. $aux=1
  4. $nombre = "parteuno".$cont."partedos".$aux;
  5. echo $$nombre;

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 28/07/2010, 08:40
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 1 mes
Puntos: 1
Respuesta: variables compuestas

Gracias Hidek1, pero creo que no aplica a lo que quiero, lo estoy haciendo con esa forma pero no veo resultado, lo hago de la forma siguiente:

$aux=1;
$cont=1;
while ($aux < 6){
while ($cont < 4){
$var ="parteuno".$cont."partedos".$aux;
if ($$var == " "){
echo "aqui se resuleve algo";
}
$cont=$cont+1;
}
$aux=$aux+1;
$cont=1;
}
  #4 (permalink)  
Antiguo 28/07/2010, 08:46
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: variables compuestas

if ($$var == " "){


tienes definida una variable con ese nombre que tenga como contenido un string con un espacio ?
osea algo asi
$parteuno1partedos2 = " ";

por que eso es lo que le dices al if ?
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 28/07/2010, 09:03
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 1 mes
Puntos: 1
Respuesta: variables compuestas

si Hidek1, esas variables vienen de un formulario, y siguen el nombre sigue esa secuencia, $parteuno1partedos1, $parteuno1partedos2, $parteuno1partedos3, $parteuno2partedos1, y así sucesivamente.

Y lo que quiero es que si viene en blanco esa variable que haga algo.
  #6 (permalink)  
Antiguo 28/07/2010, 09:14
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: variables compuestas

prueba con empty() o con isset() dependiendo de cmo es tu codigo.. si pudieras pegar un poco mas de tu proyecto para analizarlo te podria ayudar mas...
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 28/07/2010, 09:36
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 1 mes
Puntos: 1
Respuesta: variables compuestas

ok, ok, gracias

como te comento estos valores vienen de un formulario, no siempre están todos en el formulario, porque se muestran a petición, los cargo con ajax, son select, estos select son en total 15 que sus nombres siguen la estructura indicada: $parteuno1partedos1, $parteuno1partedos2, $parteuno1partedos3, $parteuno2partedos1, en la pagina donde manipulo los valores del formulario los recibo de la siguiente forma:

$_POST["parteuno1partedos1"] .... y así como corresponde.

No quiero hacer la comparación poniendo 15 if de la forma:

if ($_POST["parteuno1partedos1"]==""){
$parteuno1partedos1=1;
}

if ($_POST["parteuno1partedos2"]==""){
$parteuno1partedos2=1;
}

.....

y así hasta llegar a los 15

por eso es que considero manejarlo con un cliclo, de la forma:


$aux=1;
$cont=1;
while ($aux < 6){
while ($cont < 4){
$var ="parteuno".$cont."partedos".$aux;
if ($$var == " "){
echo "aqui se resuleve algo";
}
$cont=$cont+1;
}
$aux=$aux+1;
$cont=1;
}

pero aquí es donde me pasmé, porque no sé como manejar la comparación de estas variables.
  #8 (permalink)  
Antiguo 28/07/2010, 09:45
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: variables compuestas

mm pero no seria mas fácil un foreach?
Código PHP:
Ver original
  1. foreach($_POST as $key => $value){
  2.   if(empty(trim($value))) $$key = 1;
  3. }

es solo una idea... pero quizá te sirva de algo
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 28/07/2010, 10:01
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 1 mes
Puntos: 1
Respuesta: variables compuestas

gracias Hidek1, voy a seguir tu idea, aunque en el recibimiento de variables también recibo de otros tipos, y estas no quiero que vayan a salir afectadas, solamente quiero checar las que siguen la secuencia que indico, de esta forma no se afectan las demás??
  #10 (permalink)  
Antiguo 28/07/2010, 10:05
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: variables compuestas

solo agregales un otro filtro

Código PHP:
Ver original
  1. if(empty(trim($value)) && strstr($value, "parteuno") != false) $$key = 1;
__________________
More about me...
~ @rhyudek1
~ Github
  #11 (permalink)  
Antiguo 28/07/2010, 10:11
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 1 mes
Puntos: 1
Respuesta: variables compuestas

ok, muchas gracias!!, lo aplico y les aviso como me fue.

Etiquetas: variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:16.