PHP – Operador Ternario
En PHP el operador ternario es otro operador condicional, pero valía la pena ponerlo por separado, este realiza una acción similar a if else
Sintaxis(expr1) ? (expr2) : (expr3)
Vea que todas son expresiones, tanto expr1, expr2 y expr3. Con el operador ternario, si la expresión 1 es true se evaluará la expresión 2, en caso contrario se evaluará la expresión 3.
La mejor manera de entender el operador es vía ejemplos:
por ejemplo en el siguiente veo si llega el mensaje<?php $message=("hello")?"yes":"no"; echo $message; ?>
yes
Nesting?
Una pregunta que nos podemos poner a pensar sobre este operador es si se puede hacer nesting dentro de él, la respuesta es: si podemos poner un operador ternario dentro de otro, es una expresión y, por tanto, podemos ponerlo dentro de cualquier lugar donde espera una expresión
Ejemplo de nesting<?php $stock = 0; $b=("no-stock")?($stock==0)?"no stock":"not-defined":"not-price"; echo $b; ?>
no stock
Elvis operator
También puede que vea el operador ternario de PHP de la siguiente manera, el nombre de elvis operator sale a que el operador se parece al pelo de Elvis Presley ?:
(expr1) ?: (expr3)
Esta expresión es el equivalente a escribir (expr1) ? (expr1): (expr3)
<?php $b=("no-stock")?:"not-price"; echo $b; ?>
no-stock
Ten cuidado al usar el operador, este no está diseñado para que lo utilices colocando bloques dentro de él, para ello nos convendrá utilizar if o switch, tenga en cuenta que el operador ternario es un operador
Aquí dejo links a estructuras de control en PHP, PHP if, switch en PHP
Referencia: https://www.php.net/manual/en/language.operators.comparison.php