Re: this oop-script still doesn't work
| From: | Jonathan Sharp | Date: | Tue, 19 Nov 2002 22:59:14 +0000 |
| Subject: | Re: this oop-script still doesn't work | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-125159@lists.php.net to get a copy of this message | ||
$overall->foo->bar() works for me.
also there's no need for the eval('global...') line
Apache 1.3.27, PHP 4.2.2
-js
Tularis wrote:
> ok, I have gotten great help here already, but it still doesn't work,
> it returns a object not found error (on the $foo->bar() line). I want to
> change $overall->foo->bar() to $foo->bar... any tips? or help??
>
> thanx!
> - Tularis
>
> <?php
>
> class overall {
> var $loaded;
>
> function load($class){
> eval("global \$$class;"); // This didn't work either
> //$this->loaded[] = $class; // see the comments with the foreach()
> eval("\$this->$class = new $class;");
> return true;
> }
> }
>
> class foo {
> var $bar;
>
> // Constructor
> function bar(){
> if(!isset($this->bar)){
> $this->bar = 1;
> }else{
> $this->bar++;
> }
> echo $this->bar."<br>";
> }
> }
>
> // Start actual loading
> $overall = new overall;
> $overall->load('foo');
>
> /*
> foreach($overall->loaded as $key=>$val){ // didn't work.. I commented
> this out, because I thought it MIGHT interfere with the other way
> $val =& $overall->$val; // both don't work though :(
> }
> */
>
> $overall->foo->bar();
> $overall->foo->bar();
> $overall->foo->bar();
> $overall->foo->bar();
>
> // it doesn't understand this
> $foo->bar();
> ?>
>
>