In this lesson you will learn about flow control in PHP with if-elseif-else conditions and with loops.
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) 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.
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 (conditions) { Do this; } else { Do that; }
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.
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.
<!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
.
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).
Operator | Name | Example |
---|---|---|
&&
|
AND |
$a && $b
|
||
|
OR |
$a || $b
|
!
|
NOT |
!$b
|
The following example shows these logical operators in practice.
<!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>
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.
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.
<!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.
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.
<!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:
As the name implies, loops are used to loop (or iterate) over code blocks. The following section shows the syntax for different types of loops. Each loop will return "12345".
There are several types of loops in PHP.
while
do...while
for
foreach
foreach
loops will be covered in the Arrays lesson.
while
loops are used to execute a block of code repeatedly while one or more conditions is true.
$a=1; while ($a < 6) { echo $a; $a++; }
do...while
loops are used to execute a block of code repeatedly until one or more conditions is found to be false. The difference between while
loops and do...while
loops is that the condition is checked after the code block is executed. This means that, in a do...while
loop, the code block will always be executed at least once.
$a=1; do { echo $a; $a++; } while ($a < 6);
A for
loop takes three expressions separated by semi-colons and grouped in parentheses before the block to be iterated through.
for ($a=1; $a < 6; $a++) { echo $a; }
To break out of a loop, insert a break
statement.
for ($a=1; $a < 6; $a++) { echo $a; if ($a > 3) { break; } }
To jump to the next iteration of a loop without executing the remaining statements in the block, insert a continue
statement.
for ($a=1; $a < 6; $a++) { if ($a == 3) { continue; } echo $a; }
This page was last updated on 2022-05-20
All pages and graphics in this PHP Tutorial is copyright 2013 and are the property of learnphp-tutorial.com unless otherwise specified. The purpose of this website is to help you learn PHP on your own and use of the website implies your agreement to our Terms of Service.