==== If ElseIf Else ====
The **''If''** code block allows you to selectively execute program code based on when a condition is met. For instance, you may want to output a message based on the score for a student in the class. An example of this is shown below...
// one-line if statement
if ($score >= 60) echo 'You Pass!';
// if statement in a code block
if ($score >= 90) {
echo 'You Pass!'
$grade = 'A';
}
Using the **''Else''** keyword, you can execute a second set of code to execute when the condition is **not** met. This allows you to perform two separate actions based on a single condition. An example of this is shown below...
// if-else statement
if ($score >= 60) {
echo 'You Pass!';
} else {
echo 'Sorry, You Failed';
}
// if-else as a single line statement
if ($score >= 60) echo 'You Pass!' else 'Sorry, You Failed';
Finally, the **''ElseIf''** keyword allows you to group multiple conditions into a ''If'' expression. Using the scores example shown previously, we could display the grade for a student using the following conditional:
// if-else statement
if ($score >= 90) {
echo 'Grade: A';
} elseif ($score >= 80) {
echo 'Grade: B';
} elseif ($score >= 70) {
echo 'Grade: C';
} elseif ($score >= 60) {
echo 'Grade: D';
} else {
echo 'Sorry, You Failed';
}
You should take special notice of the evaluation order for your conditionals. They are always done from top to bottom. Once a single condition is met, **only the code for that condition will be executed**, all other conditions will be skipped.
==== Switch Statement ====
As an alternative to writing a series of **''elseif''** statements, you can use a **''switch''** statement to match a set of distinct values.
switch ($grade) {
case 'A' : echo 'Excellent!';
break;
case 'B' : echo 'Great!';
break;
case 'C' : echo 'Good Job';
break;
case 'D' : echo 'Good Effort';
break;
default: echo 'Thanks for Trying';
}
After the **''switch''** keyword, you put an expression in parentheses that you want to use in your comparisons. Next a set of curly braces define a block of literal values which are tested to match the expression shown. The first value which matches will be executed.
The **''break''** statement exits the entire ''switch'' statement. Without it, the processor would continue trying to match other values even after the first match is found. The special value **''default''** will match any other value besides the ones which are explicitly defined.
==== For Statement ====
Use the **''for''** statement to iterate over a list of items or to repeat a block of statements a specified number of times. The **''for''** statement has the following syntax (which is borrowed from the C language):
for (initializer; comparison; incrementer) {
// php statements to repeat
}
The **initializer** is where you initialize your variable. Basically, this represents your starting place or starting condition. It usually assigns a variable a value (e.g.: ''$i = 1''). The **comparison** statement is the condition under which your **for** loop should continue repeating. As long as this expressions evaluates to a **true** statement, the loop will repeat. The **incrementer** is an action to perform (usually incrementing a counter) after each repetition of the loop.
Now let's look at a very simple example of a **for** loop which counts from one to five:
// count from one to five!
for ($i = 1; $i <= 5; $i++) {
echo 'count = ' . $i . '
';
}
As you can see, the variable $i is initialized to one ($i = 1) in the **initializer**. The **condition** (''$i <= 10'') can be read as: repeat the loop as long as ''$i <= 5''. Finally, the **incrementer** advances the counter by one after each iteration of the loop. The output of this code would be:
count = 1
count = 2
count = 3
count = 4
count = 5