Ternary Operator (shortcut for conditional statements)
85References
|
Build Your Own Database Driven Website Using PHP & MySQL
Price: $18.99
List Price: $39.95 |
Ternary Operator
The Ternary operator in PHP, may be one of the most underutilized operators in PHP.
The reason being, probably it seems awkward at first glance.
$testVar = (condition) ? true : false;
Seems almost cryptic.
The operator is a shortcut, and it could or could not provide one for you, so using using it doesn't guarantee that.
Take this snippet:
if(isset($_POST['testVar'])){
$testVar = 'Laika';
}else{
$testVar = 'Tigher';
}
That could be reduced to this:
$testVar = (isset($_POST['testVar'])) ? 'Laika' : 'Tigher';
If you echo either of those out, without setting the POST var, both will print out "Tigher"
Here is a real world example of how I used the ternary operator:
//for the assistance relation
$var = split("," , $row['taRelID']);
//ternary operators and in_array function used together
$spe = (!in_array('1', $var)) ? 'No' :'Yes';
$gov = (!in_array('2', $var)) ? 'No' : 'Yes';
$plan = (!in_array('3', $var)) ? 'No' : 'Yes';
$eval = (!in_array('4', $var)) ? 'No' : 'Yes';
$fina = (!in_array('5', $var)) ? 'No' : 'Yes';
$admin = (!in_array('6', $var)) ? 'No' : 'Yes';
$other = (!in_array('0', $var)) ? 'No Comments' : 'See Comments';
In the above example, I ran the variable through a split expression, (this is what I needed to do for my example, your app will vary).
The second thing I did was to use the newly created array and check for a condition using the ternary operator.
$spe = (!in_array('1', $var)) ? 'No' :'Yes';
$other = (!in_array('0', $var)) ? 'No Comments' : 'See Comments';
See in bold the ternary operator, lets take it apart.
$spe, is the name of our new variable.
(!in_array('1', $var)), this is our condition we are looking for, it goes like this; if the the number 1 (one) is NOT in the array named $var, that is all that it is saying.
?, the question mark separates the true and false conditions that may apply, after we check for values.
'No', will be the value if the number 1(one) is NOT inĀ our array.
:, the colon separates the true from the false.
'Yes', will be the value if the number 1(one) IS in our array.
What the operator does is give us an elegant way to handle conditions, and in some cases less code.
For more references:
If you have any questions post them, and we can work through any and or all, take care and good luck.
PrintShare it! — Rate it: up down flag this hub
Comments
don't know, very good question.
I would guess if based on the length of the condition, that you are checking.








A Friend says:
5 months ago
That was interesting. Good article Alpho011. Yes the Ternary Operator does seem awkward at first glance. It is an elegant one line expression, but it sucks for readiblity in my opinion. Unless people put in spaces. I preferr to see an indented if else statement, but thats just me.Does using Ternary Operator this way execute faster than using an if else statement?