The Person Class

The next step is creating Person, an object representation of the data. This class encapsulates the address book entry’s information into an object you can manipulate. You need to be able to create a new object, get and set information, cycle through all the fields, and convert the object to XML.


The class begins with its constructor, as shown in Example 10-2.

Example 10-2. Person::_ _construct( )

class Person implements IteratorAggregate {
    private $data;

    public function _ _construct($person = NULL) {
        $this->data = array('firstname' => '', 
                            'lastname'  => '',
                            'email'     => '',
                            'id'        =>  0);

        if (is_array($person)) {
            foreach ($person as $field => $value) {
                $this->$field = $value;

Example 10-2 initializes the $data property as an array of four elements: firstname, lastname, email, and id. The first three hold information about a person, and the last one is the record’s unique database key.

When nothing’s passed into the constructor, you’re left with an empty Person object, which can then be defined. However, you can optionally pass an array of data that contains information about a person.

When this happens, the constructor loops through the array and converts each element into an object property. As you’ll see, this class actually overloads property access with _ _get( ) and _ _set( ), so the information is really going inside $data.

You’ve probably noticed that none of the properties are set by name. For example, there’s no call to $this->firstname. Instead, ...

Get Upgrading to PHP 5 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.