Estructuras condicionales en PHP.

Resumen.

Otro de los elementos fundamentales en cualquier lenguaje de programación son las estructuras condicionales, o lo que es lo mismo, si se da la condición A ejecuto la acción A, si se cumple la condición B ejecuto la acción B. El uso de estructuras condicionales es muy común y va desde casos de validación de datos elemental, hasta mostrar diferentes consultas a bases de datos en función de si hay o no un criterio de búsqueda, por poner unos ejemplos.

Artículo.

Si hay algo que está en nuestro día a día cotidiano y en un lenguaje de programación, son las estructuras condicionales. Pero, ¿qué son las estructuras condicionales?

Las estructuras condicionales nos vienen a resolver cuestiones como: si llueve cojo el paraguas, si hace frío me pongo el abrigo. Pero también otras mas complejas: si hay poco trafico salgo a las 8, si hay mucho trafico salgo a las 7. Como vemos, estos son simples ejemplos de la vida real a los que nos enfrentamos cada día, pues bien, en los lenguajes de programación, ocurre lo mismo.

Podemos por ejemplo con una estructura condicional decidir si procedemos a comprobar los datos de identificación de un usuario si ha introducido el nombre de usuario y clave. Veamos como:


<?php
/* Comprobamos que el usuario ha introducido los datos de acceso con el condicional IF */

$usuario = 'antonio';
$clave = 'abc';

if($usuario <> null AND $clave <> null){
echo 'Procedemos a comprobar datos';
}

?>


Si una (o las dos) de las variables estuviera vacía no tendríamos respuesta alguna. Solo se comprobarían los datos si el usuario introduce el nombre de usuario y una clave.

Esta es la estructura condicional mas simple, el condicional if(), y la podemos modificar un poco para que nos diga ante que caso nos encontramos.


<?php
/* Comprobamos que el usuario ha introducido los datos de acceso con el condicional ELSE */

$usuario = 'antonio';
$clave = 'abc';

if($usuario <> null AND $clave <> null){
// Se cumple la condición
echo 'Procedemos a comprobar datos.';
}else{
// No se cumple la condición
echo 'Introduzca datos de acceso.';
}

?>


En este caso, si faltan datos, el condicional ELSE nos avisa que falta algún dato, en caso contrario, procede a la comprobación.

Esta forma condicional es frecuente usarla en combinación con la función isset() que soporta varias variables isset(var1,var2,var3,…) y nos dice si todas las variables han sido definidas o si al menos existe una no definida o nula.


<?php
/* Comprobamos que el usuario ha introducido los datos de acceso con la función ISSET() y el condicional ELSE */

$usuario = 'antonio';
$clave = 'abc';

if(isset($usuario,$clave)){
// Todas las variables han sido definidas
echo 'Procedemos a comprobar datos.';
}else{
// Alguna variable NO ha sido definida o es 'null'
echo 'Introduzca datos de acceso.';
}
?>


Podemos ir mas allá con los condicionales, podemos por ejemplo aplicar descuentos en función del importe de una compra.


<?php
/* Aplicamos descuentos con el condicional ELSEIF */

$total_factura = 230;

if($total_factura <= 100){
echo 'Sin descuento.';
}elseif($total_factura > 100 AND $total_factura <= 500){
echo 'Descuento del 10%';
}elseif($total_factura > 500){
echo 'Descuento del 20%';
}

?>


También podemos mostrar el resultado contenido en una variable de la siguiente manera:


<?php
/* Aplicamos descuentos con el condicional ELSEIF guardando el resultado en una variable */

$total_factura = 230;

if($total_factura <= 100){
$resultado = 'Sin descuento.';
}elseif($total_factura > 100 AND $total_factura <= 500){
$resultado = 'Descuento del 10%';
}elseif($total_factura > 500){
$resultado = 'Descuento del 20%';
}

echo $resultado;
?>


Las estructuras condicionales podemos anidar unas dentro de otras, algo así como esto:


if($variable == 'Algo'){
if($compra_acumulada < 1000){
// Hago algo
}else{
// Hago otra cosa
}
}elseif($variable == 'Algo1'){
if($compra_acumulada < 2000) {
// Hago algo1
}else{
// Hago otra cosa1
}
}elseif($variable == 'Algo2') {
if($compra_acumulada < 3000) {
// Hago algo2
}else{
// Hago otra cosa2
}
}


Como podemos ver, ahora las cosas se hacen un poco laboriosas, no por que sea complejo, pero si porque es fácil cometer algún error a la hora de escribir un código como este.

Para facilitar las cosas en casos como el expuesto tenemos el condicional switch(), su sintaxis es la siguiente:


<?php
/* Aplicamos descuentos con el condicional SWITCH guardando el resultado en una variable */

$total_factura = 230;

switch($total_factura){
case $total_factura > 0 AND $total_factura <= 100:
$resultado = 'Sin descuento.';
break;

case $total_factura > 100 AND $total_factura <= 500:
$resultado = 'Descuento del 10%.';
break;

case $total_factura > 500:
$resultado = 'Descuento del 20%.';
break;

default:
$resultado = 'Abono factura.';
break;
}

echo $resultado;

?>


Como podemos ver la sintaxis del condicional switch es mas simple que la de elseif, ahorramos en paréntesis () y llaves {} con lo que minimizamos la probabilidad de errores a la hora de escribir nuestros códigos.

La lógica del uso de switch es sencilla, se define cada condición con case, si se cumple una cierta condición, break finaliza el condicional, es decir, deja de ejecutarse. Además tenemos default, que se ejecuta cuando no se cumple ninguna de las condiciones anteriores. En nuestro caso, ante un importe de factura negativo, tendríamos que abonar ese importe al cliente.
Tags: condicionales || if || else || elseif || switch || case

Comentarios.

Sin comentarios, publica el tuyo.