Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/04/2008, 13:49
usermax
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Funcionamiento de else

Lo veamos en español,
Suponte que voy de compras... y se me platea la necesidad de tomar una decision sobre cómo me voy a trasladar para traer la mercadería:

Objetivo: Trasladar mercadería a casa.

Decisión:

1) SI mi auto funciona ENTONCES voy en auto
2) SI mi auto no funciona ENTONCES pido prestada una moto
3) SI no me prestan la moto ENTONCES voy en taxi
4) SI no consigo taxti ENTONCES voy en bicicleta
Y SI NO CONSIGO NADA DE LO ANTERIOR ENTONCES NO VOY!!


Fíjate que el paso de decision 2 depende el uno, no es independeiente, el 3 depende del 2 y así sucesivamente. Estas "dependencia" de una decision pero respecto a otra en programación s elogra con (en el caso de php) elseif.


Ya ves que en tu caso lo estas haciendo mal porque en todo usaste if.

Vamos a traducir la situación anterior con la lógica de programación en PHP:

if ( mi auto funciona ) {
ENTONCES voy en auto
}
elseif ( me prestan una moto ) {
ENTONCES voy en moto
}
elseif ( copnsigo taxi ) {
ENTONCES voy en taxi
}
elseif ( consigo bicicleta ) {
ENTONCES voy en bicicleta
}
else {
Y SI NO CONSIGO NADA DE LO ANTERIOR ENTONCES NO VOY!!
}

Ya lo ves????
Cada elseif se evalúa sólo si el nivel superior no se cumplió.

Para terminar, tu código debería estar así (ya lo debes entender bien):

Código PHP:
if ($_GET['s']=="home"){include 'welcome.php';}
elseif (
$_GET['s']=='about'){include 'about.php';}
elseif (
$_GET['s']=="services"){include'services.php';}
elseif (
$_GET['s']=="gallery"){include 'gallery.php';}
elseif (
$_GET['s']=="clients"){include 'clients.php';}
elseif (
$_GET['s']=="contact"){include 'contact.php';}
else{
 echo 
"else";

Tu código programado de esta manera se leería:

1) Si $_GET['s'] es igual a Home entonces incluir welcome.php
2) Si $_GET['s'] no es igual a home pero si es igual a about, entonces incluiir about.php
3) i $_GET['s'] no es igual a home y tampoco es igual a about pero si es igual a clients entonces incluir clients.php
4)....
5)......
............


Queda más claro??

Saludos amigo!!

Última edición por usermax; 14/04/2008 a las 14:05