Las sentencias switch en PHP son una estructura de control que permite ejecutar diferentes bloques de código basados en el valor de una expresión. Es una alternativa a las sentencias if-else cuando se tienen múltiples condiciones que dependen del valor de una sola variable.

Conceptos Clave

  1. Expresión: La variable o expresión que se evalúa en la sentencia switch.
  2. Casos (case): Cada posible valor de la expresión que se compara con la variable.
  3. Caso por Defecto (default): El bloque de código que se ejecuta si ninguno de los casos coincide con la expresión.

Sintaxis

switch (expresión) {
    case valor1:
        // Código a ejecutar si expresión == valor1
        break;
    case valor2:
        // Código a ejecutar si expresión == valor2
        break;
    // Puedes tener tantos casos como necesites
    default:
        // Código a ejecutar si ninguno de los casos coincide
}

Ejemplo Práctico

Vamos a ver un ejemplo práctico para entender mejor cómo funciona la sentencia switch.

Ejemplo: Determinar el Día de la Semana

<?php
$dia = 3;

switch ($dia) {
    case 1:
        echo "Lunes";
        break;
    case 2:
        echo "Martes";
        break;
    case 3:
        echo "Miércoles";
        break;
    case 4:
        echo "Jueves";
        break;
    case 5:
        echo "Viernes";
        break;
    case 6:
        echo "Sábado";
        break;
    case 7:
        echo "Domingo";
        break;
    default:
        echo "Día no válido";
}
?>

Explicación del Código

  1. Variable $dia: Se define la variable $dia con un valor de 3.
  2. Sentencia switch: La sentencia switch evalúa el valor de $dia.
  3. Casos (case): Cada case compara el valor de $dia con un número del 1 al 7.
  4. break: La sentencia break detiene la ejecución del switch una vez que se ha encontrado un caso coincidente.
  5. Caso por Defecto (default): Si $dia no coincide con ninguno de los valores especificados, se ejecuta el bloque default.

Ejercicio Práctico

Ejercicio 1: Clasificación de Calificaciones

Escribe un script en PHP que clasifique una calificación numérica en letras (A, B, C, D, F) usando una sentencia switch.

Requisitos:

  • Si la calificación es 90 o más, la letra es 'A'.
  • Si la calificación es entre 80 y 89, la letra es 'B'.
  • Si la calificación es entre 70 y 79, la letra es 'C'.
  • Si la calificación es entre 60 y 69, la letra es 'D'.
  • Si la calificación es menos de 60, la letra es 'F'.

Solución

<?php
$calificacion = 85;

switch (true) {
    case ($calificacion >= 90):
        echo "A";
        break;
    case ($calificacion >= 80):
        echo "B";
        break;
    case ($calificacion >= 70):
        echo "C";
        break;
    case ($calificacion >= 60):
        echo "D";
        break;
    default:
        echo "F";
}
?>

Explicación de la Solución

  1. Variable $calificacion: Se define la variable $calificacion con un valor de 85.
  2. Sentencia switch con true: Usamos switch (true) para evaluar expresiones booleanas.
  3. Casos (case): Cada case evalúa si la calificación está dentro de un rango específico.
  4. break: La sentencia break detiene la ejecución del switch una vez que se ha encontrado un caso coincidente.
  5. Caso por Defecto (default): Si la calificación no coincide con ninguno de los rangos especificados, se ejecuta el bloque default.

Errores Comunes

  1. Olvidar el break: Si olvidas incluir break al final de cada caso, PHP continuará ejecutando los siguientes casos hasta encontrar un break o el final del switch.
  2. No usar default: Aunque no es obligatorio, es una buena práctica incluir un caso default para manejar valores inesperados.

Conclusión

Las sentencias switch son una herramienta poderosa para manejar múltiples condiciones basadas en el valor de una expresión. Son especialmente útiles cuando se tienen muchas condiciones que dependen de una sola variable. Asegúrate de usar break para evitar la ejecución no deseada de múltiples casos y considera siempre incluir un caso default para manejar valores no previstos.

Curso de Programación en PHP

Módulo 1: Introducción a PHP

Módulo 2: Estructuras de Control

Módulo 3: Funciones

Módulo 4: Arrays

Módulo 5: Trabajando con Formularios

Módulo 6: Trabajando con Archivos

Módulo 7: Programación Orientada a Objetos (POO)

Módulo 8: Trabajando con Bases de Datos

Módulo 9: Técnicas Avanzadas de PHP

Módulo 10: Frameworks de PHP y Mejores Prácticas

Módulo 11: Proyecto: Construyendo una Aplicación Web

© Copyright 2024. Todos los derechos reservados