Menu
Coddy logo textTech

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.

challenge icon

Desafío

Fácil

Lee dos enteros de la entrada: un score y un passingScore.

Usa el operador ternario para determinar el resultado basado en lo siguiente:

  • Si score es mayor o igual a passingScore, el resultado debería ser Passed
  • 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 quantity es mayor que 10, el mensaje debería ser Free 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 shipping

Si las entradas son 45, 50, y 5, la salida debería ser:

Failed
Standard shipping

Hoja 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;
?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos