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

> > -----Original Message-----
> > From: Paul M Foster [mailto:pa...@quillandmouse.com]
> > Sent: Tuesday, January 26, 2010 7:05 PM
> > To: php-general@lists.php.net
> > Subject: [PHP] 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

Reply via email to