Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/03/2008, 10:02
fcopacheco
 
Fecha de Ingreso: enero-2008
Mensajes: 68
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Condiciones IF - entra en todas

es un error que siempre cometemos

en lugar de poner:

if($a=1)

debes poner

if($a==1)


si quieres saber por qué pasa esto
te lo explico de inmediato.

lo que está en juego dentro del if es un valor booleano, vale decir, de verdadero o falso
en estos casos los valores que tienes en juego son
"default",1,2,3,4,5,6,7 y 8
los cuales son en todos los casos un valor verdadero (solo 0 y NULL son falsos)

ahora, por qué es que estos valores son verdaderos, esto pasa porque los valores los estas asignando, el signo "=" por si solo es una asignación, en cambio "==" se utiliza para comparar.


COMENTARIO SOBRE TU CODIGO

por lo que veo, "$a" solo tendrá uno de esos valores, entonces
para que el código se ejecute mucho más rápido
(en este caso la diferencia no se va a notar, pero si programas de aqui en adelante con esta idea, cuando tengas códigos mucho mas complejos, la diferencia si se notará)

deja solo el primer if y el resto cambialos por elseif

<?php

$a = $_GET["orden"];
echo "Valor de a: $a" . '<br>';

if($a=="default") echo "Orden por defecto<br>";
elseif($a==1) echo "Orden 1<br>";
elseif($a==2) echo "Orden 2<br>";
elseif($a==3) echo "Orden 3<br>";
elseif($a==4) echo "Orden 4<br>";
elseif($a==5) echo "Orden 5<br>";
elseif($a==6) echo "Orden 6<br>";
elseif($a==7) echo "Orden 7<br>";
elseif($a==8) echo "Orden 8<br>";
?>

de esta forma al encontrar un valor, no seguirá comparando los demás

Última edición por fcopacheco; 06/03/2008 a las 10:08 Razón: Agregar un comentario