Pages

Tuesday, December 21, 2010

PHP short-hand IF/Else

Any programmer will agree that the IF/ELSE statements are a fundamental part of any language. The basic syntax is pretty universal between languages but many dont realise that there is a shorthand version that allows switching to be done inline.

The syntax is simply statement ? if-true : if-false

$variable = (statement) ? "return if true" : "return if false";

Compared to

if(statement)
{
$variable = "return this if true";
}
else
{
$variable = "return this if false";
}

As you can see, you save a lot of coding by using this lightweight syntax for simple IF/ELSE statements. It can also be used inline within strings which is where I find the most benefit of using it. Here is an example that has a real world use for a simple output that changes between "there is 1 item", "there are X items", and "there are no items" using multiple statements.

$text = "There ". ($total==1 ? "is 1 item" : "are ".($total == 0 ? "no items" : "$total items") );

Compared to:

if($total==0)
{
$text = "There are no items";
}
else if($total==1)
{
$text = "There is 1 item";
}
else if($total > 0)
{
$text = "There are $total items";
}

No comments:

Post a Comment