Skip to Main Content
Upgrading to PHP 5
book

Upgrading to PHP 5

by Adam Trachtenberg
July 2004
Intermediate to advanced content levelIntermediate to advanced
350 pages
10h 9m
English
O'Reilly Media, Inc.
Content preview from Upgrading to PHP 5

Array and Object Property Iteration

In PHP you can iterate through all the elements in an array using foreach. Although other methods are available, this is the preferred syntax for looping though results:

$person = array('firstname' => 'Rasmus',
                'lastname'  => 'Lerdorf');

foreach ($person as $key => $value) {
    print "$key: $value\n";
}
firstname: Rasmus
            lastname: Lerdorf

You can also use foreach to view an object’s properties:

class Person {
    // hardcode values for demonstration
    public $firstname = 'Rasmus';
    public $lastname  = 'Lerdorf';
}

$person = new Person;
foreach ($person as $property => $value) {
    print "$property: $value\n";
}
firstname: Rasmus
            lastname: Lerdorf

In PHP 5, if an object property cannot be accessed because it is set as protected or private, then it will be skipped during iteration.

For example, update Person to include a private email attribute:

class Person {
    // hardcode values for demonstration
    public  $firstname = 'Rasmus';
    public  $lastname  = 'Lerdorf';
    private $email     = 'rasmus@php.net';
}

$person = new Person;
foreach ($person as $property => $value) {
    print "$property: $value\n";
}
firstname: Rasmus
            lastname: Lerdorf

The email property is not printed, because you cannot access it from outside the class, but the results are different when you do a foreach inside the class. For instance, add a method named printInfo( ):

class Person { // hardcode values for demonstration public $firstname = 'Rasmus'; public $lastname = 'Lerdorf'; private $email = 'rasmus@php.net'; ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Expert PHP and MySQL®

Expert PHP and MySQL®

Andrew Curioso, Ronald Bradford, Patrick Galbraith
Pro PHP Programming

Pro PHP Programming

Peter MacIntyre, Brian Danchilla, Mladen Gogala
Mastering PHP 7

Mastering PHP 7

Branko Ajzele

Publisher Resources

ISBN: 0596006365Supplemental ContentCatalog PageErrata