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

Reply via email to