
- •Initializing with Constructor Functions . . . . .
- •Into a Web page as a separate section. Although JavaScript code can
- •Is that standard php script delimiters are guaranteed to be available
- •In the block. Any text or lines between the opening /* characters and
- •2.7541 Are not integers; they are floating-point numbers. A floating-
- •Value 300
- •Is a value of 2.5, because 6 goes into 15 exactly 2.5 times. But if you
- •IsEven.Php.
- •Ing example,
- •Ing curly brace is on its own line following the function statements.
- •In php 3 and earlier, it was necessary to put a function definition
- •Is called an iteration. When the conditional expression evaluates
- •Including Files
- •13. Close your Web browser window.
- •Including Files
- •In php, you can also use two operators to combine strings. The first
- •Xhtml source code gen-
- •Input. Php provides several functions for manipulating the case of a
- •Is uppercase. If you need the reverse of ucfirst(), the lcfirst()
- •In some situations, you will need to find and extract characters and
- •Information Interchange, or ascii, which are numeric represen-
- •In comparison, the following preg_match() function returns a value
- •In the pattern is optional. The following code demonstrates how to
- •Values; any strings you validate against a regular expression must
- •Value of 1 because the top-level domain contains a valid value of .Com.
- •Is submitted using the “post” method, the form data is embedded in
- •Validating String Data
- •Xhtml tags or character entities. The message field is a text string
- •Value of the header element. For example:
- •Xhtml code within a php script section.
- •Is typically the person who created the resource. Otherwise, the net-
- •If even a single character of the Web page is sent prior to sending
- •Variables to the file_put_contents() function.
- •Xhtml hyperlink. To download a file from outside the xhtml
- •If...Else statement to display the appropriate version of the mes-
- •Iterating Through an Array
- •Iterating Through an Array
- •In Chapter 2, you learned how to use a foreach statement to iterate
- •Iterating Through an Array
- •Iterating Through an Array
- •In comparison, the following code declares and initializes
- •If ((!file_exists("MessageBoard/messages.Txt"))
- •Values from the array to create a thumbnail gallery of images in which
- •Introduction to Databases
- •Including php, allow you to create Web pages that can read and write
- •Introduction to Databases
- •Information that can be organized into ordered sets of data, and
- •Information. Each recipe in a recipe database, for instance, is a single
- •Introduction to Databases
- •Index, which identifies records in a database to make retrievals and
- •In a single table. However, you might want to break the information
- •Into multiple tables to better organize it into logical sets. Another
- •Information in one of the tables confidential and accessible only by
- •Is the employee information table from Figure 7-1. The related table
- •Is a payroll table that contains confidential salary and compensation
- •Information. Notice that each table contains an identical number of
- •Introduction to Databases
- •Introduction to Databases
- •In a junction
- •Introduction to Databases
- •In a relational format is called a relational database management
- •Is a standard data manipulation language among many dbmSs.
- •Into the query area at the top of the screen or by dragging tables and
- •It is important to understand that even though many dbmSs sup-
- •Introduction to Databases
- •If you ever
- •Is. In comparison, the bigint data type stores integer values between
- •5 Rows in set (0.00 sec)
- •Int);[enter ]
- •Important, these two tabs can cause you to lose all of the data in the
- •Internet Explorer to export the table, click the Save button in the File
- •Ifies the table being changed and the change to make.
- •It easier for you to write php code that can be used with a variety of
- •Information about queries that match one of the following formats:
- •Various types of actions, depending on the type of query.
- •Include fields for the date and time of the flight, flight number, and
- •In the ChineseZodiac folder and upload the file to the server. Open
- •Including white space,
- •Information on a Web server. When you start a new session, the
- •Introduction to Object-Oriented Programming
- •Introduction to Object-Oriented
- •Variables associated with an object are called properties or attributes.
- •In the Loan object example, a function that calculates the number of
- •Introduction to Object-Oriented Programming
- •Introduction to Object-Oriented Programming
- •Include instances of objects inherit the object’s functionality.
- •In this chapter, you will create the Web site for an online order form
- •In an online store application. The application includes information
- •Ity of building a working online store. Online store classes are very
- •Information and products. The OnlineStore class requires that store
- •Information is stored in a table containing six fields: storeId, name,
- •Information. Instead, the class simply uses session iDs to keep track
- •Variable and function as necessary, without bothering with all this
- •In a class
- •Is developed. Imagine what would happen if Microsoft distributed
- •Ing class is invalid because it does not include an access specifier:
- •If they will not be supported by future xhtml versions or are not
- •Xhtml standards. To review the guide of current w3c css specifi-
- •Information to remind yourself or others of what the code is doing. A
- •Xhtml document to the external style sheet. This link informa-
- •If you select Apache from the WampServer menu and select Service
- •Ing code uses the number_format() function to add comma separa-
- •In data that a user submits to a php script.
- •Value of “On” and the display_startup_errors directive is assigned
- •Instead. By looking at the source code, you could see that the value of
- •Ing engine can even help locate logic errors.
- •In Chapter 8, along with the equivalent mssql_* functions, where
- •Inline styles, 632
- •Xhtml, 620–635 (continued)
Declaring
Data Members
What
Is Information Hiding?
One
of the fundamental principles in object-oriented programming
is
the concept of information hiding. Information hiding gives an
encapsulated
object its black box capabilities so that users of a class
can
see only the members of the class that you allow them to see.
Essentially,
the principle of information
hiding states
that class mem-
bers
should be hidden when other programmers (sometimes called
clients)
do not need to access or know about them. Information hid-
ing
helps minimize the amount of information that needs to pass in
and
out of an object. Information hiding also reduces the complexity
of
the code that clients see, allowing them to concentrate on the task
of
integrating an object into their programs. For example, if a client
wants
to add a Payroll
object
to an Accounting program, the client
does
not need to know the underlying details of the Payroll
object’s
member
functions, nor does the client need to modify any local data
members
that are used by those functions. The client only needs to
know
which of the object’s member functions to call and what data (if
any)
needs to be passed to those member functions.
Now
consider information hiding on a larger scale. Professionally
developed
software packages are distributed in an encapsulated
format,
which means that the casual user—or even an advanced
programmer—cannot
see the underlying details of how the software
Excel
without hiding the underlying programming details. There is
no
need for users to see these details, because users do not need to
understand
how the underlying code performs the various spread-
sheet
calculations. Microsoft also has a critical interest in protecting
proprietary
information, as do you. The design and sale of software
components
is big business. You certainly do not want to spend a
significant
amount of time designing an outstanding software com-
ponent,
only to have unscrupulous programmers steal the code and
claim
it as their own. Of course, you cannot hide all of the underlying
code,
or other programmers will never be able to integrate your class
with
their applications. But you need to hide most of it.
Information
hiding on any scale also prevents other programmers
from
accidentally introducing a bug into a program when modifying
a
class’s internal workings. Well-intentioned programmers will often
attempt
to “improve” your code, no matter how well it is written.
Before
you distribute your classes to other programmers, your classes
should
be thoroughly tested and bug-free. Other programmers can
thus
focus on the more important task of integrating your code into
their
programs using the data members and member functions you
designate.
579Is developed. Imagine what would happen if Microsoft distributed
CHAPTER
10
Developing
Object-Oriented PHP
To
enable information hiding in your classes, you must designate
access
specifiers for each of your class members. You will learn about
access
specifiers next.
Using
Access Specifiers
580
The
protected
access
specifier is
used with a
more advanced object-
oriented programming
technique called
inheritance.
Prior to PHP
5, the var
keyword was
used to
declare
class data members. If
you use the var keyword
to declare a data member
in PHP 5, it is created
with public access.
The first step in hiding class information is to set access specifiers for
class members. Access specifiers control a client’s access to indi-
vidual data members and member functions. There are three levels
of access specifiers in PHP: public, private, and protected. In this
chapter, you will study the public and private access specifiers.
The public access specifier allows anyone to call the member func-
tion or to modify and retrieve the value of the data member. The
private access specifier prevents clients from calling member func-
tions or accessing data members, and is one of the key elements in
information hiding. Private access does not restrict a class’s internal
access to its own members; a class’s member function can modify
any private data member or call any private member function. Private
access restricts clients from accessing class members.
You include an access specifier at the beginning of a data member
declaration statement. For example, the following statement declares
a public data member named $Balance in the BankAccount class and
initializes it with a value of 0:
class BankAccount {
public $Balance = 0;
}
It is common
practice to list
public class
members first
to clearly iden-
tify the parts of the class
that can be accessed by
clients.
It is considered good programming practice to always assign an initial
value to a data member when you first declare it. The best way to ini-
tialize a data member is with a constructor function (discussed later
in this chapter). You can also assign simple values to data members
when you first declare them, although an error occurs if you attempt
to use any type of expression to initialize the data member. The pre-
ceding statement is valid because it only assigns a value of 0 to the
$Balance data member. However, the following statement is invalid
because it attempts to use an expression (the addition operation) to
assign a value to the $Balance data member:
class BankAccount {
public $Balance = 1 + 2;
}
Similarly, if you have a data member named $CustomerName in the
BankAccount class, you can assign a simple text string to the data
member as follows:
Declaring
Data Members
class
BankAccount {
public
$CustomerName = "Don Gosselin";
}
In comparison, the following statement is invalid because it attempts
to use an expression (the concatenation operation) to assign a value
to the $CustomerName data member:
class BankAccount {
public $CustomerName = "Don" . " " . "Gosselin";
}
581
Recall that to access a data member, you use member selection nota-
tion. Keep in mind that when you use member selection notation,
you do not include a dollar sign before the data member name. For
example, the following statements assign a new value to the $Balance
data member and then display its value:
$Checking->Balance = 958.20;
printf("<p>Your checking account balance is $%.2f.</p>",
$Checking->Balance);