Updated July 5, 2023
What is Ternary Operator in PHP?
A ternary operator is like all logical, arithmetic and comparison operators. It is a conditional operator that helps check some conditions and do the job accordingly. The ternary operator decreases the length of the code. You can easily check all your conditions and comparisons using the ternary operator. This is an alternative to the traditional if-else operator that people typically use for condition checking. 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 will 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 time and creates a notice when it encounters a void value with the present conditions.
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 statement 2 will be executed.
Examples of Ternary Operators in PHP
Let us look at a few examples so we can understand the working of the ternary operator better.
This is a straightforward example of the ternary operator
<?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 its working of it. Here the variable $age stores 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 the age is greater than 18, then ‘You can vote’; else, ‘You are not eligible to vote.’
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.
<?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 a 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.’
You can also utilize a shorthand ternary operator. You can eliminate the left-hand operator, giving you 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, the condition will be executed. Once the condition evaluates to false, the default value will be used. This can also be used by making use of the normal ternary operator as below:
$result = $condition ? $condition : 'default';
To test this, let us take a look at an example
<?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. The second condition is also not true, so that it will choose the default value as the output. Hence the output here will be ‘Num2 is the largest’.
<?php $score = 10; $age = 20; print ($age > 10 ? ($score < 80 ? 'behind' : 'above average') : ($score < 50 ? 'behind' : 'above average')); // returns 'You are behind' ?>
Consider two variables, one for score and one for age, and use a ternary operator. Here it will check if the 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 the 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.
Below are a few of the advantages explained.
- The Ternary Operator helps make the code simple and quicker than if-else.
- It helps in having the logic in line with the output and does not break the output into if-else blocks.
- The code looks much better, and cosmetically it is nicer to look at.
- Utilizing code makes code maintenance easier.
The ternary operator may look different from other operators and may also confuse you a bit initially. But once you know how to use it, you can easily use and master it. It will make your code look more manageable and easy to understand.
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 –