Foros del Web » Programando para Internet » PHP »

¿Cómo tratar variables/valores que se repiten una y otra vez?

Estas en el tema de ¿Cómo tratar variables/valores que se repiten una y otra vez? en el foro de PHP en Foros del Web. Hola, tengo este montón de variables. Puede verse ver directamente en el trac: http://www.lab.darioferrer.com/trac/...-image.php#L65 ¿Existe alguna forma de encerrarlas en un bucle y abreviar esa ...
  #1 (permalink)  
Antiguo 16/04/2010, 19:59
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
¿Cómo tratar variables/valores que se repiten una y otra vez?

Hola, tengo este montón de variables. Puede verse ver directamente en el trac:

http://www.lab.darioferrer.com/trac/...-image.php#L65

¿Existe alguna forma de encerrarlas en un bucle y abreviar esa retahíla de variables? Como pueden notar algunas se diferencian de otras, pero con un simple enlace a un ejemplo me basta. No he tenido suerte encontrándolo en la web. Por otra parte he realizado algunos intentos, todos fallidos.

--

Otro problema lo representa un script que estoy haciendo. Éste posee un conjunto de variables que luego son tratadas con condicionales y switch. Naturalmente debo darles un valor vacío o nulo al principio, pero son como 20, y hasta el momento las tengo todas definidas inicialmente con null ¿Cómo le hago para impedir que php devuelva el error de undefined variable y siga interpretando el script? es decir, que las variables dentro de un if o un switch sean tomadas como nulas, pero sin necesidad de definirlas primero como tales ¿es posible?.
  #2 (permalink)  
Antiguo 16/04/2010, 21:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Para moverte entre las variables puedes usar foreach, for, while, etc. Por ejemplo
Código PHP:
Ver original
  1. <?php
  2. $array = array();
  3. $array['foo1'] = 'bar1';
  4. $array['foo2'] = 'bar2';
  5. $array['foo3'] = '';
  6. $array['foo4'] = 'bar4';
  7. $array['foo5'] = 'bar5';
  8. $array['foo6'] = '';
  9. $array['foo7'] = 'bar7';
  10. foreach($array as $k => $v){
  11.     echo '<pre>';
  12.     var_dump($k.' - '.$v);
  13.     echo '</pre>';
  14. }
En el caso tuyo usa la variable $wpsi_configuracion.

B. Para no tener que definirlas, usa la función empty o isset.
Código PHP:
Ver original
  1. if(!empty($foo)){
  2.   //código
  3. }
Puedes recorrer el array con un bucle (foreach, for, while, etc.) y usando esas funciones que te indique.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 16/04/2010, 21:31
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Cita:
Para moverte entre las variables puedes usar foreach, for, while, etc. Por ejemplo
Gracias abimaelrc. Sin embargo el código que pusiste arriba ($array['foo1'] = 'bar1'; etc...) es como lo tengo actualmente -y por lo tanto lo que quisiera abreviar-. Observa en la línea 61 que $wpsi_configuracion está definido como array.
  #4 (permalink)  
Antiguo 16/04/2010, 21:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Ok, entonces para entenderte mejor, ¿podrías colocar un ejemplo de como quieres que se vean, para poder indicarte si es posible o la mejor forma?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 16/04/2010, 21:39
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Por ejemplo, así lo tengo:

Código PHP:
Ver original
  1. $wpsi_configuracion = array();
  2. $wpsi_configuracion['wpsi_opcion_reemplazo'] = $wpsi_php['wpsi_opcion_reemplazo'];
  3. $wpsi_configuracion['wpsi_ruta_img'] = $wpsi_php['wpsi_ruta_img'];
  4. $wpsi_configuracion['wpsi_reemp_mini'] = $wpsi_php['wpsi_reemp_mini'];

¿Es correcto abreviarlo así?:

Código PHP:
Ver original
  1. $wpsiconf_array = array('wpsi_opcion_reemplazo', 'wpsi_ruta_img', 'wpsi_reemp_mini');
  2.  
  3. foreach ($wpsiconf_array as $wpsi_a) {
  4.     $wpsi_configuracion[$wpsi_a] .= $wpsi_php[$wpsi_a];
  5. }
  #6 (permalink)  
Antiguo 16/04/2010, 21:42
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Jejeje no me había fijado en tu segundo post. Bueno ahí lo tienes
  #7 (permalink)  
Antiguo 16/04/2010, 21:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Ok, ahora es más fácil entenderte. Acuerdate que un arreglo no necesita concatenarse, solo requiere que indiques su nombre nuevo, en tu caso quita el punto y ya está
Código PHP:
Ver original
  1. $wpsiconf_array = array('wpsi_opcion_reemplazo', 'wpsi_ruta_img', 'wpsi_reemp_mini');
  2.  
  3. foreach ($wpsiconf_array as $wpsi_a) {
  4.     $wpsi_configuracion[$wpsi_a] = $wpsi_php[$wpsi_a];
  5. }
Eso es lo mismo que esto
Código PHP:
Ver original
  1. $wpsi_configuracion['wpsi_opcion_reemplazo'] = $wpsi_php['wpsi_opcion_reemplazo'];
  2. $wpsi_configuracion['wpsi_ruta_img'] = $wpsi_php['wpsi_ruta_img'];
  3. $wpsi_configuracion['wpsi_reemp_mini'] = $wpsi_php['wpsi_reemp_mini'];
Claro está, estamos deduciendo que $wpsi_configuracion y $wpsi_php tienen las mismas llaves y que $wpsi_php fue declarado anteriormente y con su respectivo valor.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 16/04/2010, 21:50
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Jua! gracias hermano. Seguro ese punto era el que me daba la falla.
Cita:
Acuerdate que un arreglo no necesita concatenarse
¿Y de todas maneras puedo llamar las variables fuera del bucle sin problema?.
  #9 (permalink)  
Antiguo 16/04/2010, 21:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Exacto. Siempre y cuando las tengas declaradas anteriormente (estoy suponiendo que en el php.ini tienes declarado ver todos los errores hasta los de nota). Porque si no tienes declarado los errores de nota, no es necesario declararlos anteriormente. Pero es buena programación, crear aplicaciones que eviten también estos errores.

Edito: El comentario anterior fue para el primero, te envio ahora el segundo
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 16/04/2010 a las 21:58
  #10 (permalink)  
Antiguo 16/04/2010, 21:56
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Espera viejo que se me traspapeló el asunto. Estaba editando el post y me enredé. Sólo te comentaba a esto que dijiste de último:

Cita:
Claro está, estamos deduciendo que $wpsi_configuracion y $wpsi_php tienen las mismas llaves y que $wpsi_php fue declarado anteriormente y con su respectivo valor.
En realidad hay un par de variantes: los resultados provenientes de campos de textos y los de radio/checkbox(valores 0 y 1), pero no me molestaría hacer dos bucles .
  #11 (permalink)  
Antiguo 16/04/2010, 22:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?



PD: Me acuerdo todavia de este comentario
Cita:
Iniciado por metacortex Ver Mensaje
... Y aún hay quienes piensan que los "viernes de geeks" no son emocionantes .
¿será coincidencia?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 16/04/2010, 22:05
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Jajajaja así es! Gracias abimaelrc por sacarme de dudas.
  #13 (permalink)  
Antiguo 19/04/2010, 20:10
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: ¿Cómo tratar variables/valores que se repiten una y otra vez?

Al final lo arreglé así, un par de arrays con sus bucles:

Código PHP:
Ver original
  1. $wpsi_vars_1 = array('wpsi_opcion_reemplazo' , 'wpsi_ruta_img' , 'wpsi_reemp_mini' , 'wpsi_reemp_medio' , 'wpsi_reemp_grande' , 'wpsi_reemp_full' , 'wpsi_texto_alt' , 'wpsi_texto_title' , 'wpsi_img_rss_cmtxt', 'wpsi_dtd', 'wpsi_img_rss');
  2.  
  3. foreach ($wpsi_vars_1 as $wpsiv1) {
  4.     $wpsi_configuracion[$wpsiv1] = $wpsi_modo_php == 1 ? $wpsi_php[$wpsiv1] : (isset($_POST[$wpsiv1]) ? $_POST[$wpsiv1] : $wpsi_config[$wpsiv1]);
  5. }
  6.  
  7. $wpsi_vars_2 = array('wpsi_activar_metabox' , 'wpsi_custom_compat' , 'wpsi_texto_alt_titulo' , 'wpsi_texto_title_titulo' , 'wpsi_dtd' , 'wpsi_rss' , 'wpsi_rdf' , 'wpsi_rss2' , 'wpsi_atom');
  8.  
  9. foreach ($wpsi_vars_2 as $wpsiv2) {
  10.     $wpsi_configuracion[$wpsiv2] = $wpsi_modo_php == 1 ? $wpsi_php[$wpsiv2] : (isset($_POST[$wpsiv2]) ? 1 : 0);
  11. }

Este trozo abrevió nada menos que todo el código entre las líneas 66 y 113. Por si surge curiosidad, dejo el enlace hacia la actual revisión del script:

http://www.lab.darioferrer.com/trac/....php?rev=8#L66

Etiquetas: Ninguno
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 00:41.