
El operador ternario es una forma simple de realizar un condicional sobre el flujo del programa, es decir, una manera rápida de plasmar un bloque if-else en una sola línea de código mediante el uso de tres operandos en una única operación, a diferencia de otras operaciones que suelen usar dos operandos, de ahí su nombre.
Para verlo con detalle vamos a suponer la siguiente línea de código donde se muestra el uso del operador ternario en PHP:
1 | $id = ( !empty( $_GET[ 'id' ] ) ? $_GET[ 'id' ] : '-1' ); |
Podemos ver como estamos usando un operador con tres operandos, cuya sintaxis es la siguiente:
1 | operando1 ? operando2 : operando3 |
Así, el funcionamiento de este operador es el siguiente: se evalúa, en primer lugar, el operando1, si éste tiene un valor verdadero o TRUE, la operación tendrá un valor igual a operando2; en caso negativo o FALSE, el resultado de la operación será el del operando3.
En el ejemplo anterior, vemos que si la variable GET[‘id’] no está vacía, el valor de la variable $id obtendrá este valor. En caso contrario, la variable $id valdrá -1.
Podemos aclararlo aún más si convertimos este ejemplo en un bloque if-else de la siguiente forma:
1 2 3 4 5 6 | if ( !empty( $_GET[ 'id' ] ) { $id = $_GET[ 'id' ]; } else { $id = '-1'; } |
Una vez aclarado, podemos ver como en una única línea de código podemos condensar el comportamiento de un bloque if-else básico mediante el uso del operador ternario en PHP.

Un pensamiento sobre “Qué es y cómo usar el operador ternario en PHP”
Porque los ternarios presentan resultados inexplicables, como este siguiente caso:
echo true ? ‘a1’: ‘a2′ ?’b’:3?’d’:’e’; //devuelve el echo d
echo true ? $a=’a1′: $a=’a2′ ?’b’:3?’d’:’e’; // devuelve el echo a1
La unica diferencia el primero no asigna valor, en la segunda asigna el valor