php中__call(),__get(),__set(),__construct(),__isset()等一些总结

  1. <?php  
  2. class info {  
  3.   
  4.  private $province; //省  
  5.  public  $city;     //城市  
  6.  private $myname;   //姓名  
  7.   
  8.  //__construct()方法到实例化时自动加载function  
  9.  function __construct() {  
  10.  echo "实例化我就起作用<br>";  
  11.  $this->myname("张映");  
  12.  }  
  13.   
  14.  //__call()方法用来获取没有定义的function  
  15.  function __call($name, $param) {  
  16.  echo $name."这个方法没有定义,跑到我这儿来了<br>";  
  17.  print_r($param) ;  
  18.  echo "<br>";  
  19.  }  
  20.   
  21.  //定义一个方法  
  22.  function myname($param) {  
  23.  echo "定义过的就到定义过的这儿来,$param<br>";  
  24.  return $this->myname = $param;  
  25.  }  
  26.   
  27.  //__get()得到私有变量值  
  28.  private function __get($name) {  
  29.  if (isset ($this-> $name)) {  
  30.  return ($this-> $name);  
  31.  } else {  
  32.  return false;  
  33.  }  
  34.  }  
  35.   
  36.  //__toString()  
  37.  private function __toString() {  
  38.  echo '你输入的这个类的名子叫'.__CLASS__."<br>";  
  39.  return __CLASS__;  
  40.  }  
  41.   
  42.  //__set()方法用来设置私有变量值  
  43.  private function __set($name, $value) {  
  44.  echo "设置私有变量时,自动调用了这个__set()方法为私有变量赋值<br>";  
  45.  $this-> $name = $value;  
  46.  }  
  47.   
  48.  //__isset()方法判断私有变量值  
  49.  private function __isset($name) {  
  50.  echo "isset()函数判断私有变量是不是被定义时,自动调用__isset()<br>";  
  51.  return isset ($this-> $name);  
  52.  }  
  53.   
  54.  //__unset()方法删除私有变量值  
  55.  private function __unset($name) {  
  56.  echo "unset()函数删除一个私有变量时,自动调用__unset()<br>";  
  57.  unset ($this-> $name);  
  58.  }  
  59.   
  60.  //__destruct()删除类对象时自动会调用  
  61.  public function __destruct() {  
  62.  echo '删除类对像,就到__destruct()这儿来<br>';  
  63.  }  
  64. }  
  65.   
  66. $info = new info();        //会调用__construct()方法和__destruct()方法  
  67. $info->province = "安徽";        //会调用__set()方法  
  68. $info->city = "合肥";                //不会调用__set()方法  
  69. $info->myname("张映");      //会调用myname()方法  
  70. $info->nickname("tank");   //会调用__call()方法  
  71. (string)$info;             //会调用__toString()方法  
  72. var_dump(isset ($info->province)) . "<br>";   //会调用__isset()方法和__get()方法  
  73. echo $info->province . "<br>";     //会调用__get()方法  
  74. unset ($info->province);           //会调用__unset()方法  
  75. echo $info->province;              //已经被删除了, 所以不会显示为安徽了,会调用__isset()方法  
  76. ?>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值