Re: Magic Methods not working
| From: | Paul M Foster | Date: | Wed, 27 Jan 2010 03:31:11 +0000 |
| Subject: | Re: Magic Methods not working | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-301522@lists.php.net to get a copy of this message | ||
On Wed, Jan 27, 2010 at 11:19:34AM +0800, Eric Lee wrote:
>
>
> On Wed, Jan 27, 2010 at 11:04 AM, Paul M Foster <paulf@quillandmouse.com>
> wrote:
>
> 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
>
>
>
> Paul,
>
> I seem that you should missed the required underscore " _ "
> It should the __get() but not _get().
> Shall this help ?
Great Caesar's Ghost! You're right! Thanks.
Paul
--
Paul M. Foster