At 11:33 14/01/2004, John Coggeshall wrote:
I know that this issue to some extent or another has been brought up
before, but I just wanted to make sure that this is really how things
are supposed to work... Apparently the statements setting B C and D
are all equivalent.

This could be absolutely bogus, but I thought maybe someone could
explain briefly why if it is :)

John

<?php
        class weird {

var $myvar;

function __construct() {

              $this->myvar = "A";
              $this->$myvar = "B";
              $this->${'myvar'} = "C";
              $this->${'$myvar'} = "D";

              echo 'this->myvar: '.$this->myvar."\n";
              echo 'this->$myvar: '.$this->$myvar."\n";
              echo 'this->${\'myvar\'}: '.$this->${'myvar'}."\n";
              echo 'this->${\'$myvar\'}: '.$this->${'$myvar'}."\n";
              echo 'this->$$$$$$$myvar: '.$this->$$$$$$$myvar."\n";
              echo 'this->$$$$$$${\'$$$myvar\'}: ' .
                    $this->$$$$$$${'$$$myvar'}."\n";

             }
        }

?>

I don't see anything odd in here. All of the assignments, except for the first one ('A'), assign to $this->"" (because $myvar, ${'myvar'} (which is the same as $myvar) and ${'$myvar'} (which is basically $"") are all non existent variables which implicitly evaluate to "". Try to turn on E_ALL, it should give you some insight...


Zeev

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to