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