Structured programming is based around three basic constructs: Sequence, Selection and Iteration. The Sequence construct is the simplest, whereby statements are executed in the order they're found in the code.
Both the Selection and Iteration constructs require a Logical Test. Logical tests can be performed on variables, literal values, calculations, and results of functions The test will evaluate to either true or false.
Selection Constructs
The Selection constructs are used when the flow of execution may flow down two or more paths.
The if Statement
The if
statement is used to control the flow of execution down one of two
or more paths, depending on the result of a logical test. Further conditions
may be specified with else if, should previous conditions be false, and else
may be used should none of the above be true. There is no semicolon at the
end of an if
statement.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Simple if Statement</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
<?php
$morning = date("I");
if ($morning == "1")
print "Good morning <br>";
else
print "Good afternoon <br>";
?>
</p>
</body>
</html>
If statements can be nested, and the combined with logical operators.
If more than one line should be executed should a condition be True, the lines should be enclosed within curly braces.
if ($x == 10)
{
print "That's an excellent result <br>";
print "You should be extremely proud of yourself! <br>";
}
Note: A common mistake is to use the assignment operator instead of the equality operator when checking for equivalence. The following statement will always evaluate to True as x is assigned the value 10 which is a non-zero number.
if ($x = 10)
The switch Statement
When there are many conditions, the switch statement can be used if the values are discrete. The switch statement is easier to read than multiple if statements when there are a large number of discrete values.
The switch statement can be used when multiple if statements become messy and difficult to read. Each case statement is an entry point, and execution will continue from that point unless a break statement is found. The break statement causes the program to continue from the end of the switch statement. Only discrete values may be used for the cases. The default statement is used if none of the listed cases are True. There is no semicolon at the end of the switch statement.
The following example prints the word for the numbers 1 to 10 passed from a form to the PHP script.
simpleForm.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Basic Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>Number Converter</h1>
<form id="selection" name="selection" method="post" action="printNumber.php">
<p>
<input type="text" size="5" value="" name="numWord"><br>
<input type="submit" value="Display Word" name="convert">
</p>
</form>
</body>
</html>
The following is the PHP script that is called from, simpleForm.html.
printNumber.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Number to Word</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
<?php
switch ($numWord)
{
case 1:
print "One <br>";
break;
case 2:
print "Two <br>";
break;
case 3:
print "Three <br>";
break;
case 4:
print "Four <br>";
break;
case 5:
print "Five <br>";
break;
case 6:
print "Six <br>";
break;
case 7:
print "Seven <br>";
break;
case 8:
print "Eight <br>";
break;
case 9:
print "Nine <br>";
break;
case 10:
print "Ten <br>";
break;
default
print "Number not between 1 and 10 <br>";
}
?>
</p>
</body>
</html>
Iteration Constructs
The Iteration constructs are used when a block of code is required to be executed continually until a condition is met.
Pre-Condition Loops
Pre-condition loops allow for a condition to be tested at the start of the loop. This type of loop is used when you only want to execute the block of code should the condition be true. If there is more than one line to be included in the iteration, it should be contained within curly braces.
A semicolon is not added to the end of the while statement. If one is added in error, then the block of code will be executed exactly once.The following example uses a pre-condition loop to calculate the factorial of a number (a number that is multiplied by every integer number below itself down to 1).
simpleForm.html
<
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Basic Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>Factorials</h1>
<form id="selection" name="selection" method="post" action="printFactorial.php">
<p>
<input type="text" size="5" value="" name="num"><br>
<input type="submit" value="Display Factorial" name="convert">
</p>
</form>
</body>
</html>
The following is the PHP script that is called from, simpleForm.html.
printFactorial.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Factorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
<?php
$factorial = 1;
// Use a pre-condition loop to calculate the factorial
while ($num > 1)
$factorial *= $num--;
print "Factorial: " . $factorial;
?>
</p>
</body>
</html>
Post-Condition Loops
Post-condition loops allow for a condition to be tested at the end of the loop. This type of loop is used when you want to execute the block of code at least once. If there is more than one line to be included in the iteration, it should be contained within curly braces. The following example increments the value of result at least once, and continues incrementing result while it has a value less than 10.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Post Condition Loop</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
<?php
$result = 1;
/*
Use a post-condition loop to increment the result
and
continue incrementing the result while it has a
value less than 10
*/
do
{
$result++;
print $result . "<br>";
}
while ($result < 10);
?>
</p>
</body>
</html>
Counted Loops
Counted loops are used when you know how many times you want to execute a statement or a list of statements. A semicolon is not added to the end of the for statement. If one is added in error, then the block of code will be executed exactly once. The general syntax for a counted loop is:
for (initialisation_section; condition; increment_section)
{
// List of statements
}
The parameters that the counted loop operates on are in three sections separated by semicolons. The first section is for initialising any variables, the second section has the condition, and the third section has any increments required to implement the loop. If more than one variable is to be used in either the initialisation_section or the increment_section, then they are separated by commas. The condition must evaluate to either true or false. Compounded conditions must be created by using the logical operators. The following example uses a counted loop passed from a form, and prints the prime numbers (a number divisible only by itself and 1) between 1 and a number enetered by the user.
simpleForm.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Basic Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>Prime Numbers</h1>
<form id="selection" name="selection" method="post" action="displayPrimes.php">
<p>
<input type="text" size="5" value="" name="num"><br>
<input type="submit" value="Display Prime Numbers" name="dispPrimes">
</p>
</form>
</body>
</html>
The following is the PHP script that is called from, simpleForm.html.
displayPrimes.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Prime Numbers</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<p>
<?php
print "The following are the prime numbers from 1 to " . $num . "<br>";
for ($counter=1; $counter < $num; $counter++)
{
$test = $counter;
$prime = 1;
while ($test-- > 2)
if (($counter % $test) == 0)
$prime = 0;
if ($prime == 1)
print $counter . " is a prime number <br>";
}
?>
</p>
</body>
</html>
The foreach Construct
Arrays in PHP are associative. PHP provides a foreach construct to iterate
through an associative array in terms of the key/value pair in the array. The
keyword as is used to place the key/value pairs into the special $key=>$value
syntax. The following example illustrates how to use the foreach construct
to iterate through the $GLOBAL
array, a PHP array that is used to store the
global variables that your script can access.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Global Array</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<h1>Global Array</h1>
<p>
<?php
foreach($GLOBALS as $key=>$value)
print $key . " = " . $value . "<br>";
?>
</p>
</body>
</html>
Comments