Re: Re: Scope woe

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

 



On Tue, Jun 30, 2009 at 11:12 AM, Peter Ford<pete@xxxxxxxxxxxxx> wrote:
> Luke wrote:
>>>
>> Thanks for the replies :)
>>
>> Surely if I pass it as a parameter to the __construct then I would have to
>> make an instance of the otherObject, notice that messwithotherthings is
>> static?
>>
>> Also, if I'm not using OOP properly, Eddie, how would I use it properly to
>> prevent this situation?
>>
>> Thanks,
>>
>
> Hmmm, I didn't notice the method was static - that means my idea really won't
> work...
>
> I did have a bad feeling about this, and Eddie confirmed my unease with the
> point about OOP.
>
> Really, you should need your $firstobject to be a singleton:
> eg.
>
> class FirstObject
> {
>    private static $theInstance = NULL;
>
>    public $propertyContainingObject;
>
>    protected function __construct()
>    {
>        // whatever
>    }
>
>    public static function getInstance()
>    {
>        if (!self::$theInstance)
>        {
>            self::$theInstance = new FirstObject();
>        }
>        return self::$theInstance;
>    }
>
>    // ... other methods ...
> }
>
>
> So then:
>
> class OtherObject
> {
>    static function messWithOtherThings()
>    {
>        $firstObject = FirstObject::getInstance();
>        $firstObject->propertyContainingObject->methodInsideThatObject();
>    }
> }
>
>
>
> I think that works, and is reasonable to the OOP purists...
>
>
> --
> 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
>
>

I wouldn't really recommend going with a singleton in this situation,
as there exists a different solution (my other post :P) and there are
very few actual use-cases where the pattern makes sense, and deploying
it unnecessarily can cause a whole lot of headache D:

-- 
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