Conditional Processing

Contact Us or call 1-877-932-8228
Conditional Processing

Conditional Processing

Conditional processing allows programmers to output different code based on specific conditions. There are two conditional structures in PHP - if-elseif-else and switch/case.

If Conditions

Simple if statement

Syntax

if (conditions)
	Do this;

In the above code, the Do this; statement will either run or not run depending on whether or not the conditions are true. This syntax can only be used when the condition affects a single line of code. For a block of code, use the following syntax.

Syntax

if (conditions)
{
	Do this;
	Then do this;
	And this too;
}

The lines of code affected by the if condition are put in a code block, which is surrounded by curly brackets to indicate that all of the code either should or should not be executed, depending on the result of the if condition.

if-else statement

Syntax

if (conditions)
{
	Do this;
}
else
{
	Do that;
}

if-elseif-else statement

Syntax

if (conditions)
{
	Do this;
}
elseif (other conditions)
{
	Do that;
}
else
{
	Do this other thing;
}

The two syntax blocks above show an if-else and an if-elseif-else statement, which can have any number of elseif blocks.

The following table shows PHP's comparison operators.

Comparison Operators
Operator Description
== Equals
!= Doesn't equal
> Is greater than
< Is less than
>= Is greater than or equal to
<= Is less than or equal to
=== Identical (same value and same type)
!== Not Identical

The following example demonstrates an if-elseif-else statement.

Code Sample:

FlowControl/Demos/If.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>if-elseif-else</title>
</head>
<body>
<?php
$age = 21;
if ($age >= 21) 
{
	echo 'You can vote and drink!';
} 
elseif ($age >= 18)
{
	echo 'You can vote, but can\'t drink.';
} 
else 
{
	echo 'You cannot vote or drink.';
}
?>
</body>
</html>

The file is relatively simple. You can see the different results by changing the value of $age.

Compound If Statements

More complex if statements often require that several conditions be checked. The table below shows and and or operators for checking multiple conditions and the not operator for negating a boolean value (i.e, turning true to false or vice versa).

Logical Operators
Operator Name Example
&& AND $a && $b
|| OR $a || $b
! NOT !$b

The following example shows these logical operators in practice.

Code Sample:

FlowControl/Demos/If2.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>if-elseif-else</title>
</head>
<body>
<?php
$age = 21;
$citizen = false;
if ($age >= 21 && !$citizen) 
{
	echo 'You can drink, but can\'t vote.';
} 
elseif ($age >= 21) 
{
	echo 'You can vote and drink!';
} 
elseif ($age >= 18 && $citizen)
{
	echo 'You can vote, but can\'t drink.';
} 
else 
{
	echo 'You cannot vote or drink.';
}
?>
</body>
</html>

switch/case

A switch/case statement is similar to an if statement, except that it can only check for an equality comparison of a single expression. It cannot, for example, be used to check if one value is higher than another.

Syntax

switch (expression)
{
	case 'a' :
		echo 'expression is a';
		break;
	case 'b' :
		echo 'expression is b';
		break;
	case 'c' :
		echo 'expression is c';
		break;
	default :
		echo 'expression is unknown';
		break;
}

The break statement is important. Without it, after a single match is found, all following statements will execute.

The following example demonstrates a switch/case statement without break statements.

Code Sample:

FlowControl/Demos/Switch.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>switch/case</title>
</head>
<body>
<?php
$quantity = 1;
switch ($quantity)
{
	case 1 :
		echo 'Quantity is 1';
	case 2 :
		echo 'Quantity is 2';
	default :
		echo 'Quantity is not 1 or 2';
}
?>
</body>
</html>

The screenshot below shows the result.Switch Without Break

Notice that, once a match is found, all remaining echo statements are output. The following example shows how this can be fixed by adding break statements.

Code Sample:

FlowControl/Demos/SwitchWithBreak.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>switch/case</title>
</head>
<body>
<?php
$quantity = 1;
switch ($quantity)
{
	case 1 :
		echo 'Quantity is 1';
		break;
	case 2 :
		echo 'Quantity is 2';
		break;
	default :
		echo 'Quantity is not 1 or 2';
}
?>
</body>
</html>

This time, only the first statement is output:First Statement

Next