On Mon, Dec 22, 2003 at 11:57:58AM +0100, rush wrote:
> Hello,
> 
> I have a problem understanding following chunk of code. It seems that global
> $rme does not remember an reference to $this, but instead it is remembering
> null or something like that:
> 
> <?PHP
> 
> class A {
>         function rememberMe() {
>             global $rme;

this creates a reference from $rme to $GLOBALS['rme']

>             $rme = & $this;

this create a *new* reference from $rme to $this. so only a local $rme
is referencing $this now.  change the line to

              $GLOBALS['rme'] = & $this;

to get the expected behaviour.


>             $this->someInstanceVar =77;
>         }
> 
>         function report() {
>             global $rme;
>             echo 'X';  print_r($rme); echo 'X';
>  }
> }
> 
> $a = new A();
> $a->rememberMe();
> $a->report();
> 
> ?>
> 
> This little script outputs:
> XX
> 
> While I would expect it to return:
> 
> Xa Object ( [someInstanceVar] => 77 ) X
> 
> rush

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

Reply via email to