$this->$aと$this->a----PHP学習ノート


今日PHP Manualの“対象”のこの部分を読む時、評論の中の1つの例がとても理解していないことを発見して、コードは以下の通りです
php
class c
{
    var $a = array('a'=>'aa','b'=>'ab');
    var $b = 'c';
    function show()
    {
        echo $this->a['a']; // -> 1st
        echo $this->a['b']; // outputs 'ab'
        $a = 'a';
        $b = 'b';
        echo ob_start($this->$a[97]);     
        echo var_dump($this->a[$a]);
        echo $this->a[$a];
        echo $this->$a[$a];// [] 1st, not what I expected
        echo $this->$a[$b];
        //echo  $this -> $a; // does NOT output 'ab'
        $this_a =& $this->$a; // work-around
        echo $this_a[$a]; // no question
        echo $this_a[$b];
        $a_arr = array('a'=>'b');
        echo $this->$a_arr[$a]; // [] 1st => outputs 'c'
    }
}
$c = new c();
$c->show();
?>
    $this->$a $this->a    ,   var_dump()   $this->$a['a'] $this->a['a']     ,       .
   Google          ,        :
$this->$a['a']   PHP        $this->{$a['a']},   $a     'a'        ,      $this->a['a'],
   ['a']       'a'     (index of string 'a'),                integer,    PHP ['a']  
      0!      :
$this->$a['a']----->> $this->a['a']----->>$this->a[0]----->$this->a 
        $this->$a===$this->a;           $a[x]   x   ,         ,      !
                         ,         Bug。               :)
 

Technoratiラベル:PHP、学習ノート