class ColumnVo extends Vo{
   public $column_id;
   public $column_name = array('label'=>'栏目名称','value'=>'haha');
   .............
}-------------------------------------------
                                if($property=='column_name'){
                                        print_r($this->$property['value']);
                                        echo '<br/>';
     echo 'Form value is: '.$value.'<br/>';
     $this->$property['value'] = $value; 
     print_r($this->$property['value']);
     echo <br/>';
     print_r($this->$property);
     }
-----------------输出----------------------
Undefined property: ColumnVoMysql 报错
Form value is: cccccccc
cccccccc
Array ( [label] => 栏目名称 [value] ='haha'> )
-------------------------------------------
第二行输出说明值的却已经赋上去了。 但是打印数组却只打印VO原有的值, [type] => string  这个是VO原来就写死的。总结:print_r 有点懒加载的味道,我被print_r害惨了。

解决方案 »

  1.   

    <?php
    class  A {

    public function test(){
    $m = 'a';
    $k = 'b';

    $this->a = 1111;
    echo $this->a;   // 1111 
    echo '<br/>';

    $this->b['value']='v';
    echo $this->b['value'];
    echo '<br/>';

    //间接
    $this->$m = 2222;
    echo $this->a;
    echo '<br/>';
    echo $this->$m;
    echo '<br/>';

    $this->$k['value']='x';
    echo $this->b['value'];
    echo '<br/>';
    echo $this->$k['value'];
    echo '<br/>';

    $temp = $this->$k;
    $temp['value'] = 'y';
    echo $this->b['value'];
    echo '<br/>';
    echo $this->$k['value'];
    echo '<br/>'; 

    $temp2 = $this->b;  // 改成  $temp2 = &$this->b;  就有用了。
    $temp2['value'] = 'z';
    echo $this->b['value'];
    echo '<br/>';
    echo $this->$k['value'];
    echo '<br/>'; 
    }

    }class B extends A{
    public $a=9999;
    public $b=array('value'=>null,'name'=>'haha');


    }
    $bobj = new B();
    $bobj->test();--------------------------------------
    $temp2 是数组的一个拷贝啊? 为什么会是这样啊?看样子数组像JAVA中的基本数据类型啊。
      

  2.   

    语法歧义造成的
    你可以改成
    $this->{$property}['value']$this->{$property}['value'] = $value;……
    print_r……
      

  3.   

    还是用常规的方法好。不要直接改属性,通过魔术的或者自定义的get,set方法多好。会避免很多问题。