Re: Magic Methods not working

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

 



On Tue, Jan 26, 2010 at 07:21:34PM -0800, Daevid Vincent wrote:

> > -----Original Message-----
> > From: Paul M Foster [mailto:paulf@xxxxxxxxxxxxxxxxx]
> > Sent: Tuesday, January 26, 2010 7:05 PM
> > To: php-general@xxxxxxxxxxxxx
> > Subject:  Magic Methods not working
> >
> > I have a class which instantiates other classes, and has a
> > magic method
> > like this:
> >
> > function _get($classname)
> > {
> >	return $this->instantiate($classname);
> > }
> >
> > Obviously, the class also has an instantiate method which does what it
> > says.
> >
> > Here's the problem: When I call the instantiate method, it works fine,
> > like this:
> >
> > $db = $sc->instantiate('database');
> >
> > But when I do the following, it *doesn't* work:
> >
> > $db = $sc->database;
> >
> > In fact it does not call the instantiate() method; I've placed a print
> > statement in the instantiate() method which fires at then end of the
> > routine. That statement doesn't fire with the above code.
> >
> > The docs on magic methods are pretty slim, so I'm not sure what it is
> > I'm missing. Can someone enlighten me?
> >
> > Paul
> 
> http://us2.php.net/manual/en/language.oop5.magic.php
> 
> There are TWO underscores needed, not one.
> 
> __get()
> 
> Also, just to save you some time/grief, you might consider using my awesome
> routines:
> 
> Put these in your base.class.php and extend it for all other classes.
> Magic.

Oh no. I can't use those. The braces are in all the wrong places! (All
praise be to K&R...) ;-}

Paul

-- 
Paul M. Foster

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