Foros del Web » Programando para Internet » PHP »

Usando || - Sentencia más eficiente

Estas en el tema de Usando || - Sentencia más eficiente en el foro de PHP en Foros del Web. Hola. Hay alguna forma de hacer este sencillo condicional más eficiente o sin repetir tanto $var en caso de que fueran cientos de 'valores'? Código ...
  #1 (permalink)  
Antiguo 22/11/2011, 20:10
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Pregunta Usando || - Sentencia más eficiente

Hola. Hay alguna forma de hacer este sencillo condicional más eficiente o sin repetir tanto $var en caso de que fueran cientos de 'valores'?

Código PHP:
if($var=='valor1' || $var=='valor2' || $var=='valor3' || $var=='valor4' || $var=='valor...') {  } 
Traté:

Código PHP:
if($var == ('valor1' || 'valor2' || 'valor3' || 'valor4')) {  } 
Pero no funcionó. Les agradezco cualquier ayuda.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #2 (permalink)  
Antiguo 22/11/2011, 20:15
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Usando || - Sentencia más eficiente

Podrias confeccionar una función a la que le otorgues cada parámetro en un array y aparte la variable, si es diferente, que devuelva false y evaluas el valor retornado con un if.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 22/11/2011, 20:16
 
Fecha de Ingreso: octubre-2011
Mensajes: 37
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Usando || - Sentencia más eficiente

Código PHP:
Ver original
  1. switch($var) {
  2.    case 'valor1':
  3.    case 'valor2':
  4.       echo 'valor1 o valor2';
  5.       break;
  6.    case 'valor3':
  7.       echo 'valor3';
  8.       break;
  9.    case 'valor4':
  10.       echo 'valor4';
  11.       break;
  12.    case default:
  13.       echo 'ninguno de los anteriores';
  14.       break;
  15. }

como ves puedes contemplar todos los valores que quieras hasta que haya un break o return o parecido que corte el flujo para salir del switch
  #4 (permalink)  
Antiguo 22/11/2011, 20:35
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Respuesta: Usando || - Sentencia más eficiente

Les agradezco su ayuda, era para hacer un "or" con 10 valores solamente.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #5 (permalink)  
Antiguo 22/11/2011, 20:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 37
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Usando || - Sentencia más eficiente

Cita:
Iniciado por Sourcegeek Ver Mensaje
Podrias confeccionar una función a la que le otorgues cada parámetro en un array y aparte la variable, si es diferente, que devuelva false y evaluas el valor retornado con un if.
estarias reinventando la rueda, para eso tenemos la funcion in_array, mira esto:

Código PHP:
$variable 'valor4';

$valores = array(
   
'valor1''valor2'3'valor4'56'valor7'
);

echo 
in_array($variable$valores); 

Etiquetas: eficiente, sentencia
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 18:32.