php 魔术函数使用说明

网络整理 - 08-25

  什么是魔术函数?

  对于__开头的函数就命名为魔术函数, 此类函数都在特定的条件下触发的.比如: __set() __get()等

  在设置或取不存在的属性时候触发.

  有那些魔术函数呢?

  总的来说, 有下面几个魔术函数

  __construct() __destruct() __get() __set() __isset() __unset() __call() __callStatic()

  __sleep() __wakeup() __toString() __set_state() __clone() __autoload()

  __construct()当实例化一个对象的时候,这个对象的这个方法首先被调用。

  __destruct()当删除一个对象或对象操作终止的时候,调用该方法。

 

class test1 {
public function __construct() {
var_dump(__function__);
}
public function __destruct() {
var_dump(__function__);
}
}
$t1 = new test1 ;
unset($t1);

  __get当试图读取一个并不存在的属性的时候被调用。

  __set当试图向一个并不存在的属性写入值的时候被调用。

  __isset当试图检测一个并不存在的属性时候被调用。

  __unset当试图取消一个并不存在的属性时候被调用。

  

class test2 {
public $name3;
public function __set($key, $value) {
var_dump(__function__. '
KEY:'
.$key.'
Value:'
.$value);
}
public function __get($key) {
var_dump(__function__. 'KEY:'.$key);
}
public function __isset($key) {
var_dump(__function__. ' KEY:'.$key);
}
public function __unset($key) {
var_dump(__function__. ' KEY:'.$key);
}
}
$t =new test2 ;
$t->name = "steven";
$t->name2;
$t->name3;
isset($t->name2);
isset($t->name3);
unset($t->name4);