Re: Re: Scope woe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It should be passed into the constructor as a parameter.  If you're
using OOP properly, there's no reason to use $GLOBALS, ever.  Any
variable in the $GLOBALS array exists twice in memory, so just keep
that in mind, if you plan to use it.

On Tue, Jun 30, 2009 at 8:43 AM, Peter Ford<pete@xxxxxxxxxxxxx> wrote:
> 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
>
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux