Switch Statement
Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 32 de 71.
Cuando necesites comparar una sola variable con muchos valores específicos, la sentencia switch ofrece una alternativa más limpia a las cadenas largas de if-elseif.
La sentencia switch verifica una variable una vez y luego la compara con diferentes valores de case:
<?php
$day = "Monday";
switch ($day) {
case "Monday":
echo "Start of the week";
break;
case "Friday":
echo "Almost weekend";
break;
case "Saturday":
case "Sunday":
echo "Weekend!";
break;
default:
echo "Regular day";
}
?>PHP compara $day con cada case. Cuando encuentra una coincidencia, ejecuta el código de ese bloque.
La sentencia break es crucial: le indica a PHP que salga del switch después de ejecutar el case coincidente. Sin ella, PHP continuaría ejecutando todo el código subsiguiente, incluso de otros cases.
Observa cómo sábado y domingo comparten el mismo código al apilar casos juntos. El caso default actúa como un else: se ejecuta cuando ningún otro caso coincide.
<?php
$grade = "B";
switch ($grade) {
case "A":
echo "Excellent!";
break;
case "B":
echo "Good job!";
break;
default:
echo "Keep trying!";
}
?>Usa switch cuando compares una variable contra múltiples valores exactos. Para condiciones complejas o rangos, quédate con las sentencias if-elseif.
Desafío
FácilLee una cadena command desde la entrada que representa un color de semáforo.
Usa una sentencia switch para determinar la acción apropiada según el color:
- Si el comando es
red, imprimeStop - Si el comando es
yellow, imprimeSlow down - Si el comando es
green, imprimeGo - Si el comando es
flashing redoflashing yellow, imprimeProceed with caution - Para cualquier otro valor, imprime
Invalid signal
Ejemplo:
Si la entrada es green, la salida debería ser:
GoSi la entrada es flashing red, la salida debería ser:
Proceed with cautionSi la entrada es blue, la salida debería ser:
Invalid signalPruébalo tú mismo
<?php
// Leer entrada
$command = trim(fgets(STDIN));
// TODO: Escribe tu código debajo usando una sentencia switch
// Determina la acción apropiada basada en el color del semáforo
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString OperatorsPractica por tu cuenta: Compilador de PHP online