just change make your new class global :
class overall {
var $loaded;
function load($class){
eval ("global \$$class;");
eval("\$$class = new $class;");
return true;
}
}
then you can call it using
$overall = new overall;
$overall->load('foo');
// This should work now ;).
$foo->foo();
Hatem
----- Original Message -----
From: "Tularis" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, November 17, 2002 11:21 PM
Subject: [PHP] 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
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php