PHP ternary operator
The ternary operator is another conditional operator, but it is worth putting it separately. It performs a similar action to if else.
Sintaxis(expr1) ? (expr2) : (expr3)
Note that all are expressions, both expr1, expr2, and expr3. With the ternary operator, if expression 1 is true, expression 2 will be evaluated; otherwise, expression 3 will be evaluated.
The best way to understand the operator is through examples. For example, in the following code, I check if the message arrives:
check if the message arrives<?php $message=("hello")?"yes":"no"; echo $message; ?>
yes
Nesting?
A question we may ask ourselves about this operator is whether nesting can be done inside it, in other words, if we can put a ternary operator inside another one. The answer is yes, it is an expression, and therefore, we can put it inside any place where an expression is expected.
Nesting example<?php $stock = 0; $b=("no-stock")?($stock==0)?"no stock":"not-defined":"not-price"; echo $b; ?>
no stock
Elvis operator
You may also see this operator as follows, the name of the Elvis operator comes from the fact that the operator looks like Elvis Presley’s hair:
![reson why elvis operator](https://blastcoding.com/wp-content/uploads/2024/07/chrome_HkhhDPk1QV-1.png)
(expr1) ?: (expr3)
This expression is equivalent to writing (expr1) ? (expr1) : (expr3).
Elvis operator example<?php $b=("no-stock")?:"not-price"; echo $b; ?>
no-stock
Be careful when using the operator, it is not designed for you to place blocks within it. For that, it is better to use if or switch statements. Keep in mind that the ternary operator is just an operator.
Here I leave links to PHP control structures, PHP if, PHP switch
Reference: https://www.php.net/manual/en/language.operators.comparison.php