What is Ternary Operator in PHP?
A ternary operator is like all logical, arithmetic and comparison operators. It is a conditional operator that helps in checking some conditions and doing the job accordingly. The ternary operator decreases the length of the code. You can easily perform check all your conditions and comparisons using the ternary operator. It can be called an alternative to the traditional if else operator which is used for checking some conditions. The order in which this operator works is from left to right. It is a very good option when the user needs to save time. In this topic, we are going to learn about Ternary Operator in PHP.
Why do we use a Ternary Operator in PHP?
The reason we make use of a Ternary Operator is to simplify the if else statements. It can be used to assign variables. Another reason to use this operator is when the user wants to assign data after validation or to validate forms. The ternary operator is also easy to understand and use. It also saves a lot of time and creates a notice when it encounters a void value with the conditions that are present.
Syntax
The ternary operator has its name as it has three operands present. These three operands represent a condition, a result when the condition is true and the third one when the result is false. The syntax for the same is as below:
Condition? Statement 1: Statement2
The above syntax can be explained as follows. The ternary operator works just like an if else statement. The condition here is the if condition which is to be verified and checked. This returns a boolean value which can be either true or false. If this condition stands true, then statement 1 is executed. If statement 1 is not true, then just like the else condition in if else the statement 2 will be executed.
Examples of Ternary Operator in PHP
Let us have a look at a few examples so that we can understand the working of the ternary operator better.
Example #1
This is a straight forward example of the ternary operator
Code:
<?php
$age=19;
print ($age>=18) ? "You can vote": "You are not eligible to vote";
?>
This is the easiest example of the ternary operator where you can understand the working of it. Here the variable $age is storing the age of the candidate. They are validating if the candidate is eligible to vote or not. Here is only one life of code this condition is being checked. It validates that if age is greater than 18 then ‘You can vote’ else ‘You are not eligible to vote’.
Output:
Example #2
Now let us check for the case which is the other way around when the age is less than 18. In this case, the code will be as below.
Code:
<?php
$age=15;
print ($age>=18) ? "You can vote": "You are not eligible to vote";
?>
This example will go and fetch statement 2 as a result. It will evaluate the condition. The age variable here has its value of less than 18. The condition in the ternary operator is not satisfied hence it will give the output as ‘You are not eligible to vote’.
Output:
There is also a shorthand ternary operator that can be used. In this, you can eliminate the left-hand operator which will enable you to have even shorter expressions.
This can be expressed as:
$result = $initial ?: 'default';
Here the working of this expression is that until the initial does not evaluate to false till then the condition will be executed. Once the condition evaluates to false then the value present in default will be used. This can also be used by making use of the normal ternary operator as below:
$result = $condition ? $condition : 'default';
Example #3
To test this let us take a look at an example
Code:
<?php
$num=5;
$num1=6;
$num2=10;print ($num > $num1) ? ($num > $num2) : 'Num2 is largest';
?>
This code checks for both conditions which are specified. It will first check if $num is greater than $num1. Here this condition is false. It will then move to the next condition. This condition checks if $num is greater than $num2. This condition will also return false as 5 is not greater than 10. The default value here is set to Num2 is the largest. As the second condition is also not true it will choose the default value as the output. Hence the output here will be ‘Num2 is the largest’.
Output:
Example #4
Code:
<?php
$score = 10;
$age = 20;
echo Considering your age and score, you are: ',($age > 10 ? ($score < 80 ? 'behind' : 'above average') : ($score < 50 ? 'behind' : 'above average')); // returns 'You are behind'
?>
This is another example of a ternary operator where there are two variables taken into consideration, one having score and the other having age. Here it will check if age is greater than 10 and the score is less than 80 then the output will be behind. Else the output will be above average. Similarly, we are checking another example where age is greater than 10 but the score is less than 50 then also the output will be behind else it will be above average. The output of the above code will be: Considering your age and score, you are: behind.
Output:
Advantages
Below are a few of the advantages explained.
- The Ternary Operator helps in making the code simple and is quicker than if else.
- It helps in having the logic in line with output and does not break the output in if else blocks.
- The code looks much better and cosmetically it is nicer to look.
- The maintenance of code is made easier when it is being used.
Conclusion
The ternary operator may look different from other operators and may also confuse you a bit initially. But once you get the idea of how to use it you can easily use it and master it. It will make your code look more manageable and easy to understand.
Recommended Articles
This is a guide to Ternary Operator in PHP. Here we discuss What is Ternary Operator in PHP? along with the advantages and respective examples. You may also have a look at the following articles to learn more –