The Ternary Operator
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 shippingHoja de referencia
El operador ternario proporciona una forma compacta de escribir asignaciones if-else simples en una sola línea.
La sintaxis es: condition ? value_if_true : value_if_false
<?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
?>PHP evalúa la condición primero. Si es verdadera, 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!
?>Utilice el operador ternario para asignaciones simples de sí-o-no. Para lógica compleja con múltiples condiciones, utilice sentencias if-elseif-else para una mejor legibilidad.
Prué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
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 Operators