- PHP - Elementos estructurales - Constructor condicional if/else -

La estructura de este constructor es:

if(condición)
{
            sentencia1;
}
else
{
            sentencia2;
}

Si la condición se cumple, se ejecuta sentencia1. De no cumplirse, se ejecutará la sentecia2.
Ejemplo:
Digamos que en el cine se proyecta un filme para todas la edades.
Los mayores tienen un precio y los menores tienen otro.
Una persona se acerca al cajero y pide una entrada.
El cajero, le presenta el siguiente formulario:

<html>
<head>
<title>Formulario simple</title>
</head>
<body bgcolor="#eceaf3">
<form action="ejem.php" method="get">
Por favor, introduzca su edad:
<input type="text" size="10" name="edad"><br>
<input type="submit" name="sumit_edad" value="enviar">
<input type="reset" value="borrar">
</form>
</body>
</html>

En el se le pide al visitante que introduzca su edad.
Al pulsas el botón "enviar", se ejecutará la comprobación de la condición para determinar el precio de a pagar por el visitante:

<html>
<head>
<title>Constructor condicional if/else</title>
</head>
<body bgcolor="#eceaf3">
<font face = "verdana" size='+1'>
<pre>
<?php
extract($_REQUEST);
if(!isset($submit_edad))
{
            exit;
}
?>
<table border="1" bordercolor="#333399" width="350">
            <tr>
    <?php
            if($edad >= 12)
            {
                        $precio = 12.50;
                        print"<td>El precio para mayores es \$$precio</td>";
            }
            else
            {
                        $precio = 8.45;
                        print"<td>El precio para menores es \$$precio</td>";
            }
            ?>
    </tr>
</table>
</pre>
</font>
</body>
</html>

La estructura de este constructor puede ampliarse con la implementación de varias condicionantes como sigue:

if(condición)
{
            sentencia1;
}
elseif(condición)
{
            sentencia2;
}
elseif(condición)
{
            sentencia3;
}
else
{
            sentencia4;
}

Si se cumple la primera condición, se ejecuta el bloque de sentencia1. En caso contrario, se ejecuta la comprobación de la segunda condición. De cumplirse, se ejecuta el bloque de sentencia2. De no ser así, se ejecutará la siguiente.
De no cumplirse ninguna de las condiciones, entonces se ejecutará la sentencia4.
El constructor else no es obligatorio.
Ejemplo:
Supongamos que se pretenda vender monitores.
En el almacén, se encuentra tres variantes de diversos tamaños: de 15, 17 y 24 pulgadas.
Así las cosas, lo primero es crear el formulario, donde el comprador anotará el que desee comprar:

<html>
<head>
<title>Formulario simple</title>
</head>
<body bgcolor="#eceaf3">
<form action="ejem.php" method="get">
Nuestra oferta comprende monitores de 15,17 y 24 pulgadas.<br>
Indique el monitor de su preferencia:
<input type="text" size="10" name="pulgad"><br>
<input type="submit" name="submit_pulgad" value="enviar">
<input type="reset" value="borrar">
</form>
</body>
</html>

A continuación, debe implementar el procesamiento del formulario:

<html>
<head>
<title>Constructor condicional if/elseif </title>
</head>
<body bgcolor="#eceaf3">
<font face = "verdana" size='+1'>
<pre>
<?php
extract($_REQUEST);
if(!isset($submit_pulgad)||$pulgad == "" )
{
            print"Debe introducir su selecci&oacute;n<br/>";
            exit;
}
?>
<table border="1" bordercolor="#333399" width="350">
            <tr>
    <?php
            if($pulgad==15)
            {
                        $precio=199.95;
                        print"<td>El precio del monitor de 15 pulgadas es \$$precio</td>";
            }
            elseif($pulgad==17)
            {
                        $precio=245.75;
                        print"<td>El precio del monitor de 17 pulgadas es \$$precio</td>";
            }
            elseif($pulgad==24)
            {
                        $precio=523.20;
                        print"<td>El precio del monitor de 24 pulgadas es \$$precio</td>";
            }
            else
            {
                        print"<td>Disculpe, pero el tipo indicado por Ud. no esta disponible</td>";
            }
            ?>
    </tr>
</table>
</pre>
</font>
</body>
</html>

Una alternativa a este constructor, es "switch", el cual tiene la estructura siguiente:

switch(expresión)
{
            case etiqueta:
                        declaración;
                        break;
            case etiqueta:
                        declaración;
                        break;
            ..
            default:declaración;
}

Ejemplo:
Lo primero es crear un formulario para introducir los datos:

<html>
<head>
<title>Formulario simple</title>
</head>
<body bgcolor="#eceaf3">
<form action="ejem.php" method="get">
Elija el color que sea utilizar: <br>
<input type="radio" name="color" value="red">rojo<br>
<input type="radio" name="color" value="blue">azul<br>
<input type="radio" name="color" value="purple">purpura<br>
<input type="radio" name="color" value="green">verde<br>
<input type="radio" name="color" value="yellow">amarillo<br>
<input type="submit" name="submit_color" value="determinar un color">
<input type="reset" value="borrar">
</form>
</body>
</html>

A continuación, continua el procesamiento de la información:

<html>
<head>
<title>Constructor condicional switch</title>
</head>
<body bgcolor="#eceaf3">
<font face = "verdana" size='+1'>
<pre>
<?php
extract($_REQUEST);
if(!isset($submit_color))
{
            exit;
}
?>
<table border="1" bordercolor="#333399" width="350">
            <tr>
    <?php
switch($color)
{
            case"red":
            print"<td><font color=" . $color . ">El color de las letras es rojo</fond></td>";
            break;
            case"blue":
            print"<td><font color=" . $color . ">El color de las letras es azul</td>";
            break;
            case"purple":
            print"<td><font color=" . $color . ">El color de las letras es purpura</td>";
            break;
            case"green":
            print"<td><font color=" . $color . ">El color de las letras es verde</td>";
            break;
            case"yellow":
            print"<td><font color=" . $color . ">El color de las letras es amarillo</td>";
            break;
            default:
            print"<td><font color=" . 'black' . ">El color de las letras es negro</td>";
            break;
}
?>
    </tr>
</table>
</pre>
</font>
</body>
</html>


previo
Imprimir..
Ultima actualisación: Tue, 24 ▪ May ▪ 2011
próximo