
06/03/2008, 10:02
|
| | Fecha de Ingreso: enero-2008
Mensajes: 68
Antigüedad: 17 años, 1 mes 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
|