* 魔术方法 :
*
* __construct : -> 当类实例化的时候被调用
* __destruct : -> 在类实例对象被销毁的时候调用
* __call : -> 在调用的方法不存在的时候 或者 权限不够的时候调用
* __callStatic: -> 在调用的静态方法不存在的时候 或者 权限不够的时候调用
* __get : -> 在类中的属性为私有的时候 想要在外部获取值 则需要重写__get即可
* __set : -> 在类中的属性为私有的时候 想要在外部写入值 则需要重写__set即可
* __isset : -> 重写isset()函数 在外部调用查看某类中是否有该私有属性定义的时候调用
* __unset : -> 当在类外部使用unset()函数来删除私有成员时自动调用的
* __sleep : -> 对象在被序列化的时候调用(serialize)
* __wakeup : -> 对象被反序列化的时候调用(unserialize)
* __toString : -> 当被打印出无效数据的时候调用 echo 如果要打印对象 就会被调用
* __invoke : -> 当对象以函数的方式调用的时候 invoke 就会被调用
* __set_state : -> var_export()的使用时调用
* __clone : -> 使用clone关键字的时候调用
* __debugInfo : -> var_dump()一个类时的回应
ps: 最后3个没有写示例 ... 自行脑补
1 class Answer{ 2 private $answer; 3 public $kins = 1; 4 5 public function __construct() 6 { 7 echo '当类实例化的时候被调用<br>'; 8 } 9 10 public function __destruct() 11 { 12 // TODO: Implement __destruct() method. 13 echo '在类实例对象被销毁的时候调用<br>'; 14 } 15 16 public function __call($name, $arguments) 17 { 18 // TODO: Implement __call() method. 19 echo '在调用的方法不存在的时候 或者 权限不够的时候调用<br>'; 20 } 21 22 public static function __callStatic($name, $arguments) 23 { 24 // TODO: Implement __callStatic() method. 25 echo '在调用的静态方法不存在的时候 或者 权限不够的时候调用<br>'; 26 } 27 28 public function __set($name, $value) 29 { 30 echo '当给私有属性answer赋值的时候调用<br>'; 31 $this->$name = $value; 32 } 33 34 public function __get($name = '') 35 { 36 echo '当获取私有属性answer的时候调用<br>'; 37 return $this->$name; 38 } 39 40 public function __isset($name = '') 41 { 42 echo '判断是否定义了answer<br>'; 43 return isset($this->$name); 44 } 45 46 public function __toString() 47 { 48 // TODO: Implement __toString() method. 49 return '当被打印出无效数据的时候调用<br>'; 50 } 51 52 public function __invoke($value = '') 53 { 54 // TODO: Implement __invoke() method. 55 echo '当对象以函数的方式调用的时候 invoke 就会被调用<br>'; 56 $this->kins = $value; 57 } 58 59 private function getName() 60 { 61 return 'kinsFeng'; 62 } 63 64 private static function getSex() 65 { 66 return 'man'; 67 } 68 69 } 70 71 $a = new Answer(); 72 73 echo $a::getSex(); 74 unset($a); 75 $a('a'); 76 echo $a->kins; 77 var_dump($a); 78 echo $a->kins; 79 $a->answer = 'a'; 80 $b = $a->answer; 81 isset($a->answer);exit;