//设置不存在的属性时调用 function __set($name, $value) { echo __METHOD__."\n"; $this->array[$name] = $value; } //调用不存在属性时使用,一般与set配套使用 function __get($name) { echo __METHOD__."\n"; if(isset($this->array[$name])){ return $this->array[$name]; }else{ return "你所调用的属性不存在\n"; } } //调用不存在的方法调用 function __call($name, $arguments) { var_dump($name,$arguments); echo "\n"; return "magic function\n"; } //调用不存在的静态方法调用,类似__call static function __callStatic($name, $arguments) { return "magic function __callStatic\n"; } //把对象转化为字符串时调用 function __toString() { return __CLASS__; } //把对象作为函数时调用 function __invoke($param) { var_dump($param); echo '\n'; return "invoke\n"; }
转载于:https://my.oschina.net/lawlietSady/blog/807379