operador ternario PHP

Operador ternario en PHP: condiciones, cero y valores ausentes

Elige entre ?: y ?? sin perder el cero ni encadenar condiciones ambiguas.

Tipo: Guía práctica Lectura: 3 min Actualizado: 2026-11-03
Ejemplo visual para Operador ternario en PHP: cuándo usarlo y cuándo evitarlo

Guía y comprobaciones

Dos ramas que producen un valor

El ternario completo evalúa una condición y elige una de dos expresiones. Es útil para asignaciones cortas con un resultado claro. Cuando una rama requiere varias instrucciones, un if separado permite explicar mejor la decisión.

$unidades = 3;
$etiqueta = $unidades === 1 ? 'unidad' : 'unidades';
echo $etiqueta, PHP_EOL; // unidades

Cero no es lo mismo que ausencia

El ternario abreviado $valor ?: $alternativa utiliza la alternativa cuando el valor se evalúa como falso. Eso incluye 0, '0', una cadena vacía y false. El operador ?? utiliza la alternativa si el operando no existe o es null; conserva un cero válido.

$stock = 0;
echo $stock ?: 10, PHP_EOL; // 10
echo $stock ?? 10, PHP_EOL; // 0
$entrada = ['intentos' => 0];
echo $entrada['intentos'] ?? 3, PHP_EOL; // 0

Para un formulario, define primero qué significa un campo vacío. Si aceptas un número entero, validar su formato y su rango es una tarea diferente de elegir el texto que mostrarás. Ni ?: ni ?? sustituyen esa validación.

Condiciones anidadas con paréntesis

En PHP 8 el ternario completo no es asociativo. No escribas cadenas sin paréntesis esperando que el lector o el intérprete adivinen qué pareja corresponde a cada condición. Para tres estados, un if o un match apropiado suele expresar mejor el problema. Clasificar una temperatura como negativa, cero o positiva es una decisión de tres resultados, no una invitación a comprimir toda la lógica.

Prueba los valores que cambian el sentido de la rama: null, cero, una unidad y dos unidades. Si la salida se inserta en HTML, escápala según ese contexto; que el ternario haya elegido una cadena no convierte la cadena en HTML seguro.

Preguntas frecuentes

¿El ternario abreviado conserva el cero?

No: cero se evalúa como falso y activa la alternativa. Usa una condición explícita o ?? si sólo quieres cubrir ausencia o null.

¿Puedo encadenar varios ternarios?

Usa paréntesis para una agrupación explícita; para varias decisiones suele resultar más claro escribir if o match.

Documentación oficial

Fuentes consultadas

Fuentes y referencias

Consulta referencias útiles para ampliar o contrastar esta guía.

R

Autora de la guia

Redacción de Línea de Código

Publicación independiente de programación y trámites digitales

Guías con ejemplos y referencias oficiales para aprender programación y preparar gestiones digitales. Las solicitudes se completan en el organismo responsable.

Actualizado: 2026-11-03 Politica editorial Correcciones

Por que confiar

Contrastamos fuentes oficiales, actualizamos piezas clave y priorizamos estructura, contexto y enlazado interno por encima del relleno.

Compartir

Guarda o comparte esta guia con el enlace limpio.