PHP----魔术方法相关(1)

魔术方法通常在定义是前面加两个下划线,例:__get();__construct;等等。

  __GET($属性名): 在对一个对象的不存在的属性进行“取值”的时候,会自动调用的方法;其实是可以用该方法

来对这种‘意外’情况进行某种特殊的处理。其中该方法可以带一个形参,表示这个对之取值的不存在的属性名(字符串);

class A{

  //定义一个属性,这个属性意图存储“若干个”不存在的属性数据;

  protected $prop_list = array(); //初始为空数组

  

  //这个方法会在A的对象使用一个不存在的属性进行赋值的时候自动调用

  function   __set($v,$p){

  //echo "使用的是不存在的属性。。。。"

    $this->prop_list[$p] = $v; 

  }

  function  _get($p){

    return $this->prop_list[$p];

  }

}

  $a1 = new A();

  $a1->p1 = 1;

  $a1->h2 = 3;

  $a1->abc = '你好';

  echo "输出这些不存在的属性"的值;

  echo $a1->p1;

  echo $a1->h2;

  echo $a1->abc;

如此就可打印出来这些未定义的属性。

posted @ 2017-10-16 17:29  燃烧的果冻  阅读(35)  评论(0)    收藏  举报