you can't access $overall->foo because you've never defined it
you need:

        function load($class){
                eval("\$this->$class = new $class;");
                return true;
        }

Tim

> -----Original Message-----
> From: Tularis [mailto:[EMAIL PROTECTED]]
> Sent: 17 November 2002 22:21
> To: [EMAIL PROTECTED]
> Subject: OOP-classes in PHP
> 
> 
> currently I have the followig script:
> 
> everything works fine, except for the fact that it doesn't seem to 
> understand $overall->foo->foo();. It returns this error:
> "Fatal error: Call to a member function on a non-object in 
> d:\apache\htdocs\classes.php on line 32"
> 
> Now, I know the object is loaded, because the constructor is run, and 
> puts out a 1 onscreen... I wish to know how to make this work...
> any help plz?
> 
> thanx
> - Tularis
> <?php
> 
> class overall {
>       var $loaded;
>       
>       function load($class){
>               eval("\$$class = new $class;");
>               return true;
>       }
> }
> 
> class foo {
>       var $bar;
> 
>       // Constructor
>       function foo(){
>               if(!isset($this->bar)){
>                       $this->bar = 1;
>               }else{
>                       $this->bar++;
>               }
>               echo $this->bar."<br>";
>       }
> }
> 
> // Start actual loading
> $overall = new overall;
> $overall->load('foo');
> 
> // As of here it won't work anymore... somehow 
> $overall->foo-> doesn't 
> work...
> 
> $overall->foo->foo();
> ?>
> 
> (and if possible, I would also like to change $overall->foo->foo() to 
> $foo->foo(), but still keeping that class as a 'subclass' to 
> the overall 
> one.)
> 
> 

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

Reply via email to