Chapter 3. Making Decisions and Repeating Yourself
Chapter 2 covered the basics of how to
represent data in PHP programs. A program full of data is only half
complete, though. The other piece of the puzzle is using that data to
control how the program runs, taking actions such as:
If an administrative user is logged in, print a special menu. Print a different page header if it's after three
o'clock. Notify a user if new messages have been posted since she last logged
in.
All of these actions have something in common: they make decisions
about whether a certain logical condition involving data is true or
false. In the first action, the logical condition is
"Is an administrative user logged
in?" If the condition is true (yes, an
administrative user is logged in), then a special menu is printed.
The same kind of thing happens in the next example. If the condition
"is it after three
o'clock?" is true, then a different
page header is printed. Likewise, if "Have new
messages been posted since the user last logged in?"
is true, then the user is notified.
When making decisions, the PHP interpreter boils down an expression
into true or false. Section 3.1 explains how the
interpreter decides which expressions and values are
true and which are false.
Those true and false values are
used by language constructs such as if( ) to
decide whether to run certain statements in a program. The ins and
outs of if( ) are detailed later in this chapter
in Section 3.2. Use
if( ) and similar constructs any time the outcome
of a program depends on some changing conditions.
While true and false are the
cornerstones of decision making, usually you want to ask more
complicated questions, such as "is this user at
least 21 years old?" or "does this
user have a monthly subscription to the web site or enough money in
their account to buy a daily pass?" Section 3.3, later in this
chapter, explains PHP's comparison and logical
operators. These help you express whatever kind of decision you need
to make in a program, such as seeing whether numbers or strings are
greater than or less than each other. You can also chain together
decisions into a larger decision that depends on its pieces.
Decision making is also used in programs when you want to repeatedly
execute certain statements — you need a way to indicate when
the repetition should stop. Frequently, this is determined by a
simple counter, such as "repeat 10
times." This is like asking the question
"Have I repeated 10 times yet?" If
so, then the program continues. If not, the action is repeated again.
Determining when to stop can be more complicated, too — for
example, "show another math question to a student
until 6 questions have been answered correctly." Section 3.4, later in this
chapter, introduces PHP's while(
) and for( ) constructs, with which you
can implement these kinds of loops.
|