El operador ternario
Parte de la sección Fundamentos del Journey de PHP de Coddy. Lección 30 de 71.
Cuando tienes un if-else simple que solo asigna un valor basado en una condición, PHP ofrece una forma más corta de escribirlo: el operador ternario.
La sintaxis utiliza ? y : para crear una condicional compacta de una línea:
<?php
$age = 20;
// Using if-else
if ($age >= 18) {
$status = "adult";
} else {
$status = "minor";
}
// Same thing with ternary operator
$status = $age >= 18 ? "adult" : "minor";
echo $status; // adult
?>La estructura es: condition ? value_if_true : value_if_false.
PHP evalúa la condición primero. Si es verdadera, la expresión devuelve el valor después de ?. Si es falsa, devuelve el valor después de :.
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>El operador ternario es perfecto para asignaciones simples de sí o no. Para lógicas más complejas con múltiples condiciones, quédate con las declaraciones if-elseif-else para una mejor legibilidad.
Desafío
FácilLee dos enteros de la entrada: un score y un passingScore.
Usa el operador ternario para determinar el resultado basado en lo siguiente:
- Si
scorees mayor o igual apassingScore, el resultado debería serPassed - De lo contrario, el resultado debería ser
Failed
Imprime el resultado en la primera línea.
Entonces, lee un entero quantity de la entrada. Usa el operador ternario para determinar el mensaje de envío:
- Si
quantityes mayor que 10, el mensaje debería serFree shipping - De lo contrario, el mensaje debería ser
Standard shipping
Imprime el mensaje de envío en la segunda línea.
Ejemplo:
Si las entradas son 75, 60, y 15, la salida debería ser:
Passed
Free shippingSi las entradas son 45, 50, y 5, la salida debería ser:
Failed
Standard shippingPruébalo tú mismo
<?php
// Leer entrada
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Usa el operador ternario para determinar si la puntuación es aprobada o reprobada
// Usa el operador ternario para determinar el mensaje de envío
// Imprimir los resultados
echo $result . "\n";
echo $shippingMessage;
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nombresRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - ElseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso - Tomar decisiones3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación combinadaIncremento/DecrementoPrecedencia de operadoresRepaso: cálculos simplesOperadores de cadenasPractica por tu cuenta: Compilador de PHP online