Luke wrote: > Hello again guys, > > I was wondering the best way to tackle the following problem: > > I've got a class, containing a property which is another object. So from > outside I should be able to do > $firstobject->propertycontainingobject->methodinsidethatobject(); > > The $firstobject variable is in the global namespace (having been made with > $firstobject = new FirstObject;), and I'm having a problem that I'm sure > many people have when accessing it inside another class, so: > > class otherObject > { > static function messwithotherthings () > { > $firstobject->propertycontainingobject->methodinsidethatobject(); > } > } > > But $firstobject is blank, which makes sense because in there it is pointing > to the local variable within the method. > > To solve this, I could add 'global $firstobject' inside every method, but > this is very redundant and boring. I've tried a couple of things like > adding: > > private $firstobject = $GLOBALS['firstobject']; > > But apparently that's bad syntax. I was just wondering the best way to get > around this? > > Thanks a lot for your help, > Set the value of $firstobject in the constructor of otherObject (that's what constructors are for!): eg. class otherObject { private $firstobject; function __construct() { $this->firstobject = $GLOBALS['firstobject']; } static function messwithotherthings () { $this->firstobject->propertycontainingobject->methodinsidethatobject(); } } -- Peter Ford phone: 01580 893333 Developer fax: 01580 893399 Justcroft International Ltd., Staplehurst, Kent -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php