ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel
  • »
  • Technology»
  • Internet & the Web

Ternary Operator (shortcut for conditional statements)

Updated on January 17, 2014

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:

http://us3.php.net/ternary

If you have any questions post them, and we can work through any and/or all, take care and good luck.


Comments

    0 of 8192 characters used
    Post Comment

    • Alpho011 profile image
      Author

      Alpho011 8 years ago from Marietta, Georgia

      don't know, very good question.

      I would guess if based on the length of the condition, that you are checking.

    • profile image

      A Friend 8 years 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?