本文共 2273 字,大约阅读时间需要 7 分钟。
"; // echo __CLASS__ . ""; // echo __METHOD__ . ""; $this->_name = $name; } public function __destruct() { echo '__destruct' . ""; } public function __get($name) { echo '__get' . ""; if (array_key_exists($name, $this->data)) { return $this->data[$name]; } $trace = debug_backtrace(); trigger_error( 'Undefined property via __get(): ' . $name . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'], E_USER_NOTICE); return null; } public function __set($name, $value) { echo '__set' . ""; $this->data[$name] = $value; } public function __isset($name) { echo '__isset' . ""; return isset($this->data[$name]); } public function __unset($name) { echo '__unset' . ""; unset($this->data[$name]); } public function __call($name, $arguments) { // 注意: $name 的值区分大小写 /*echo "Calling object method '$name' " . implode(', ', $arguments). "\n";*/ $className = '_' . $name; $this->$className(); } private function _getName() { echo 'call _getName' . ""; } public static function __callStatic($name, $arguments) { // 注意: $name 的值区分大小写 echo "Calling static method '$name' " . implode(', ', $arguments). "\n"; } public function __sleep() { return array('server', 'username', 'password', 'db'); } public function __wakeup() { $this->connect(); } public function __toString() { echo 'call __toString' . ""; return $this->_name . ""; } //当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。 function __invoke($x) { var_dump($x); } public function __debugInfo() { return [ 'propSquared' => $this->_name, ]; }}
调用文件
a);echo "";unset($mag->a);var_dump(isset($mag->a));echo "";*//*$mag->getName();echo "";magic::getName();echo "";*///测试__toString// echo $mag;// $mag(5);// echo "";// var_dump(new magic('jack'));// echo "";//魔术常量// echo __LINE__;// echo __FILE__;// echo __DIR__;// echo __NAMESPACE__;
转载地址:http://rksib.baihongyu.com/