Hudzilla.org - the homepage of Paul Hudson
Contents > Objects Wish List | Report Bug | About Me ]

6.6     Objects within objects

This is NOT the latest copy of this book; click here for the latest version.

You can use objects inside other objects in the same as other variable types. For example, we could define a dogtag class and give each dog a dogtag object like this:

class dogtag {
    public
$Words;
}

class
dog {
    public
$Name;
    public
$DogTag;

    public function
bark() {
        print
"Woof!\n";
    }
}

Accessing objects within objects is as simple as using -> again:

$poppy = new poodle;
$poppy->Name = "Poppy";
$poppy->DogTag = new dogtag;
$poppy->DogTag->Words = "My name is Poppy. If you find me, please call 555-1234";

Note that $DogTag variable is declared like any other, but needs to be created with "new" once $poppy has been created.





<< 6.5 The \'this\' variable   6.7 Access control modifiers >>
Table of Contents
Want to see this stuff in print? PHP in a Nutshell takes the core topics covered here, adds in thousands of edits from the editorial team and myself, and combines them to make an unbeatable reference for PHP programmers at all levels.



My latest book has hundreds more tips on how to use PHP, Apache, and MySQL, plus Perl, Python, shell scripts, performance tuning, and more!



Top-right shadow
 
Bottom-left shadow Bottom shadow

Comments from other readers
A PHP User - 07 Sep 2008

damn verminox you are the woman

Verminox - 07 Sep 2008

$poppy = new dog;

You have written 'new poodle' which is incorrect conisidering you have not defined the class 'poodle'.

chima/chytons@yahoo.com - 07 Sep 2008

Yes you can.

micah.frost@gmail.com - 07 Sep 2008

Can you instantiate new objects within a class definition?



Add comment
Please note that by posting a comment here you are committing it to the public domain. This is important so that others can make use of your code themselves, and also so that I can incorporate helpful notes directly into the main text. Comments are limited to 2000 characters in length.

If you are reporting an error in the content, please tell me directly.

Your name/email address:
Your comment:
 
Now, in order to verify that you're a real person, please answer this simple question: what is seven plus six?
The answer is:
(please write in
numbers, eg 19)


Top-right shadow
 
Bottom-left shadow Bottom shadow