Foros del Web » Programando para Internet » PHP »

optimizando un código simple

Estas en el tema de optimizando un código simple en el foro de PHP en Foros del Web. Hola, espero que puedan ayudarme un poco con esto, es solo una linea y funciona bien, pero lo que necesito es otimizar la eficiencia de ...
  #1 (permalink)  
Antiguo 29/04/2011, 08:55
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años
Puntos: 336
Exclamación optimizando un código simple

Hola, espero que puedan ayudarme un poco con esto, es solo una linea y funciona bien, pero lo que necesito es otimizar la eficiencia de modo que sea mas corta y de lo posible no tener que repetir los nombres de las variables, ahorrando espacio y trabajo ya que resulta que esta linea se repite muchas veces en mas de un archivo:

La linea en cuestión es esta:

Código PHP:
Ver original
  1. if($_GET['polv']>0)$var101=$_GET['polv'];else $var101=0;

Explicando un poco que hace, se supone que el usuario aquí ingresa un numero, sin embargo a veces los usuarios desactivan javascript y ponen datos inválidos, los datos invalidos son:
  • espacios
  • numeros inferiores a 0
  • campos vacios
  • valores nulos (NULL)
  • letras u otros caracteres no numéricos

Lo que hace el código es simplemente preguntar si el numero es mayor que 0, en caso contrario guarda el numero 0 y no hay problemas hasta aquí, el problema es la cantidad de veces:

Código PHP:
Ver original
  1. if($_GET['polv']>0)$var101=$_GET['polv'];else $var101=0;
  2. if($_GET['resf']>0)$var102=$_GET['resf'];else $var101=0;
  3. if($_GET['brty']>0)$var103=$_GET['brty'];else $var101=0;
  4. if($_GET['arhh']>0)$var104=$_GET['arhh'];else $var101=0;
  5. if($_GET['mhmh']>0)$var109=$_GET['mhmh'];else $var109=0;
  6. if($_GET['zser']>0)$var121=$_GET['zser'];else $var121=0;
  7. if($_GET['qrtb']>0)$var251=$_GET['qrtb'];else $var251=0;
  8. if($_GET['mutr']>0)$var145c=$_GET['mutr'];else $var145c=0;

lo que busco es algo que me permita reducir a algo así:

$var101=$_GET['polv']>0 else 0;

o sea, que reduzca el espacio (tamaño de archivo), que no me haga escribir el nombre de cada variable 2 veces (tiempo de trabajo) y que no tenga que comparar o asignar tantas veces (tiempo de respuesta)

Hace un tiempo vi una instrucción que era algo así:

$x= : $a ? $b;

o algo así que permitía guardar en una variable el valor de una de 2 variables dependiendo de si la primera estaba vacía.

Alguien conoce esta función u otra que me sirva para lo que necesito?

MUCHAS GRACIAS!!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 29/04/2011, 09:03
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 5 meses
Puntos: 334
Respuesta: optimizando un código simple

Código PHP:
$var101 $_GET['polv'] > $_GET['polv'] : 0
y podrias hacer un bucle y un array si es tdo igual

Código PHP:
$foo = array('polv''resf''brty'/**etc**/);
foreach (
$foo as $key => $value) {
    
$bar 'var10' $key;
    $
$bar $_GET[$value] > $_GET[$value] : 0;

saludos
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 29/04/2011, 09:17
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años
Puntos: 336
Respuesta: optimizando un código simple

ESA MISMA era la que había visto, eso reduce bastante el trabajo, me gustaría saber si hay alguna forma de evitar repetir el nombre de la variable GET, supongo que puedo hacer algo así:

Código PHP:
$v='polv'$var101 $_GET[$v] > $_GET[$v] : 0
pero no se si sea lo mejor, si nadie tiene una idea mejor usare esta, gracias!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: simple
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 04:17.