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, en español si podemos poner un operador ternario dentro de otro, la respuesta es si 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