Nested Ternary Statement PHP

by frank on March 30, 2008

in Tips of the Week

Moving complex php if statements into ternary statement syntax is not always recommended, but I think it can look quite neat and easily readable.

Ternary statements compress your code and using nested ternary statements sparingly in certain situations makes a mess of nested if statements far easier to scan when converted to a nested ternary.

e.g: If you have a matrix of 4 results depending on two boolean results you could represent this as a regular php nested if else statement:

$bTest1 = false;
$bTest2 = false;
 
	if ($bTest1) {
		if ($bTest2) {
			echo 'test 1 true, test 2 true';
		}
		else {
			echo 'test 1 true, test 2 false';
		}
	}
	else {
		if ($bTest2) {
			echo 'test 1 false, test 2 true';
		}
		else {
			echo 'test 1 false, test 2 false';
		}
	}

Or you could use a nested ternary operator syntax:

echo $bTest1
?($bTest2?'test 1 true, test 2 true':'test 1 true, test 2 false')
:($bTest2?'test 1 false, test 2 true':'test 1 false, test 2 false');

Thats the tip of the week. More tips to come next year.

Resources:
Ternary Operator Tips

Was this article useful?

rss feed icon

Email this article to yourself or...

rss feed icon

Subscribe to the RSS feed for more useful articles and tips.

Share this article with others

  • del.icio.us
  • Twitter
  • Reddit
  • StumbleUpon
  • Facebook
  • Digg