CA314 Introduction To Open Source Environment Lecture Notes: Unit 3 Decision Making
CA314 Introduction To Open Source Environment Lecture Notes: Unit 3 Decision Making
CA314 Introduction To Open Source Environment Lecture Notes: Unit 3 Decision Making
Decision Making
PHP provides number of statements that you can use to make decisions:
• ❑ The if statement
• ❑ The else and elseif statements
• ❑ The switch statement
The if Statement
The easiest decision-making statement to understand is the if statement. The basic form of an if construct is as follows:
if ( expression )
If the expression inside the parentheses evaluates to true, the code between the braces is run. If the expression evaluates
to false, the code between the braces is skipped.
$widgets = 23;
if ( $widgets == 23 )
{
echo “We have exactly 23 widgets in stock!”;
if ( $widgets >= 10 )
{
echo “We have plenty of widgets in stock.”;
}
else
{
echo “Less than 10 widgets left. Time to order some more!”;
You can even combine the else statement with another if statement to make as many alternative choices as you like:
if ( $widgets >= 10 )
{
echo “We have plenty of widgets in stock.”;
}
else if ( $widgets >= 5 )
{
echo “Less than 10 widgets left. Time to order some more!”;
}
else
{
echo “Panic stations: Less than 5 widgets left! Order more now!”;
PHP even gives you a special statement — elseif — that you can use to combine an else and an if statement. So the preceding
example can be rewritten as follows:
if ( $widgets >= 10 )
{
echo “We have plenty of widgets in stock.”;
}
elseif ( $widgets >= 5 )
{
echo “Less than 10 widgets left. Time to order some more!”;
}
else
{
echo “Panic stations: Less than 5 widgets left! Order more now!”;
PHP provides a more elegant way to run these types of tests: the switch statement. With this statement, you include the
expression to test only once, then provide a range of values to test it against, with corresponding code blocks to run if the values
match. Here’s the example:
switch ( $userAction )
{
case “open”:
// Open the file
break;
case “save”:
// Save the file
break;
case “close”:
// Close the file
break;
case “logout”:
// Log the user out
break;
default:
print “Please choose an option”;
}
The first line features the switch statement, and includes the condition to test — in this case, the value of the $userAction variable
— in parentheses. Then, a series of case statements
test the expression against various values: ”open”, ”save”, and so on. If a value matches the expression, the code following the
case line is executed. If no values match, the default statement is reached, and the line of code following it is executed.
Ternary Operator
The symbol for the ternary operator is ?.
Unlike other PHP operators, which work on either a single expression (for example, !$x) or two expressions (for example, $x ==
$y), the ternary operator uses three expressions:
The ternary operator can be thought of as a compact version of the if...else construct. The preceding code reads as follows: If
expression1 evaluates to true, the overall expression equals expression2; otherwise, the overall expression equals expression3.
$widgets = 23;
$plenty = “We have plenty of widgets in stock.”;
$few = “Less than 10 widgets left. Time to order some more!”;
echo ( $widgets >= 10 ) ? $plenty : $few;
Looping
The basic idea of a loop is to run the same block of code again and again, until a certain condition is met. As with decisions, that
condition must take the form of an expression. If the expression evaluates to true, the loop continues running. If the expression
evaluates to false, the loop exits, and execution continues on the first line following the loop’s code block.
• ❑ while loops
• ❑ do...while loops
• ❑ for loops
The expression inside the parentheses is tested; if it evaluates to true, the code block inside the braces is run. Then the
expression is tested again; if it’s still true, the code block is run again, and so on. However, if at any point the
expression is false, the loop exits and execution continues with the line after the closing brace.
<?php
$width = 1;
$length = 1;
do
{
$width++;
$length++;
$area = $width * $length;
} while ( $area < 1000 );
echo “The smallest square over 1000 sq ft in area is $width ft x $length ft.”;
?>
As with while and do...while loops, if you only need one line of code in the body of the loop you can omit the braces.
You can see that, whereas do and do...while loops contain just one expression inside their parentheses, a for loop can contain
three expressions. These expressions, in order, are:
• ❑ The initializer expression — This is run just once, when the for statement is first encountered. Typically, it’s used
to initialize a counter variable (for example, $counter = 1)
• ❑ The loop test expression — This fulfils the same purpose as the single expression in a do or do...while loop. If this
expression evaluates to true, the loop continues; if it’s false, the loop exits. An example of a loop test expression would
be $counter <= 10
• ❑ The counting expression — This expression is run after each iteration of the loop, and is usually used to change the
counter variable — for example, $counter++
$count = 0;
while ( true )
{
$count++;
echo “I’ve counted to: $count<br />”;
if ( $count == 10 )
break;
}
Functions
A function — also called a subroutine in some other languages — is a self- contained block of code that performs a specific task.
A function often accepts one or more arguments, which are values passed to the function by the code that calls it. The function
can then read and work on those arguments. A function may also optionally return a value that can then be read by the calling
code. In this way, the calling code can communicate with the function.
Functions are an important part of any programming language for a number of reasons:
functionName()
If you need to pass arguments to the function, place them between the parentheses, separating each argument by commas:
functionName( argument )
functionName( argument1, argument2 )
Defining Functions
Defining a function is really easy — just use the following syntax:
function myFunc()
{
// (do stuff here)
In other words, you write the word function, followed by the name of the function you want to create, followed by parentheses.
Next, put your function’s code between curly brackets ({}). Here’s a trivial example:
function hello()
{
echo “Hello, world!<br/>”;
Defining Parameters
Functions can optionally accept one or more arguments, which are values passed to the function. To tell PHP that you want your
function to accept arguments, you specify one or more corresponding parameters when you define your function. A parameter is
a variable that holds the value passed to it when the function is called.
To specify parameters for your function, insert one or more variable names between the parentheses, as follows:
}
Returning Values from Your Functions
Functions can return values as well as accept them. To get your function to return a value, you use PHP’s return statement:
function myFunc()
return value;
value can be any expression, so you can use a literal value (such as 1 or false), a variable name (such as $result), or a more
complex expression (for example, $x * 3 / 7).
Static Variables
All variables declared within a function are deleted when the function exits, and created anew when the function is next called.
However, sometimes it’s useful to create a local variable that has a somewhat longer lifespan. Static variables let you do just this.
These types of variables are still local to a function, in the sense that they can be accessed only within the function’s code.
However, unlike local variables, which disappear when a function exits, static variables remember their values from one function
call to the next.
To declare a local variable as static, all you need to do is write the word static before the variable name, and assign an initial
value to the variable:
static $var = 0;
The first time the function is called, the variable is set to its initial value (zero in this example). However, if the variable’s value
is changed within the function, the new value is remembered the next time the function is called. The value is remembered only
as long as the script runs, so the next time you run the script the variable is reinitialized.
OOP Concepts
Objects model the real-world things, processes, and ideas that your application is designed to handle. An object-oriented
application is a set of collaborating objects that independently handle certain activities. There are the basic building blocks that
you can use to create object-oriented applications in PHP.
Classes
A class is a unit of code that describes the characteristics and behaviors of something, or of a group of things. A class called Car,
for example, would describe the characteristics and behaviors common to all cars.
Objects
An object is a specific instance of a class. For example, if you create a Car class, you might then go on to create an object called
myCar that belongs to the Car class. You could then create a second object, yourCar, also based on the Car class.
A class specifies the characteristics that an object will have, but not necessarily the specific values of those characteristics.
Meanwhile, an object is constructed using the blueprint provided by a class, and its characteristics have specific values.
Properties
In OOP terminology, the characteristics of a class or object are known as its properties. Properties
are much like regular variables, in that they have a name and a value (which can be of any type). Some properties allow their
value to be changed and others do not.
Methods
The behaviors of a class — that is, the actions associated with the class — are known as its methods. Methods are very similar to
functions; in fact, you define methods in PHP using the function statement. The methods of a class, along with its properties, are
collectively known as members of the class.
class Car {
// Nothing to see here; move along
This code simply defines a class called Car that does nothing whatsoever — it merely includes a comment. Notice that a class
definition consists of the class keyword, followed by the name of the class, followed by the code that makes up the class,
surrounded by curly brackets ({ }).
To create an object, you use the new keyword, followed by the name of the class that you want to base the object on. You can
then assign this object to a variable, much like any other value.
class Car {
// Nothing to see here; move along
This code first defines the empty Car class as before, then creates two new instances of the Car class — that is, two Car objects. It
assigns one object to a variable called $beetle, and another to a variable called $mustang.
Creating and Using Properties
Class properties are very similar to variables; for example, an object’s property can store a single value, an array of values, or
even another object.
Public properties can be accessed by any code, whether that code is inside or outside the class. If a property is declared public, its
value can be read or changed from anywhere in your script
Private properties of a class can be accessed only by code inside the class. So if you create a property that’s declared private,
only methods inside the same class can access its contents. (If you attempt to access the property outside the class, PHP generates
a fatal error.)
Protected class properties are a bit like private properties in that they can’t be accessed by code outside the class, but there’s one
subtle difference: any class that inherits from the class can also access the properties.
Declaring Properties
To add a property to a class, first write the keyword public, private, or protected — depending on the visibility level you want to
give to the property — followed by the property’s name (preceded by a $ symbol):
class MyClass {
public $property1; // This is a public property
private $property2; // This is a private property
protected $property3; // This is a protected property
By the way, you can also initialize properties at the time that you declare them, much like you can with variables:
class MyClass {
public $widgetsSold = 123;
Accessing Properties
Once you’ve created a class property, you can access the corresponding object’s property value from within your
calling code by using the following syntax:
$object->property;
Creating a Method
To add a method to a class, use the public, private, or protected keyword, then the function keyword, followed by the method
name, followed by parentheses. You then include the method’s code within curly braces:
class MyClass {
public function aMethod() {
// (do stuff here)
}}
Calling Methods
To call an object’s method, simply write the object’s name, then the same arrow used for accessing properties (->), then the
method name followed by parentheses:
$object->method();
Here’s a simple example that creates a class with a method, then creates an object from the class and calls the object’s method:
class MyClass {
public function hello() {
echo “Hello, World!”;
}}
Inheritance
Inheritance allows you to create classes — known as child classes — that are based on another class: the parent class. A child
class inherits all the properties and methods of its parent, and it can also add additional properties and methods.
To create a child class that’s based on a parent class, you use the extends keyword, as follows:
class Shape {
// (General Shape properties and methods here)