Ternary Operator (shortcut for conditional statements)
Ternary Operator
The Ternary operator in PHP, may be one of the most underutilized operators in PHP.
The reason being, is that it probably 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 [a shortcut] for you, so 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 one 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 the 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.