如何高效运用PHP中的魔术方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计230个文字,预计阅读时间需要1分钟。
使用魔法方法实现属性访问:
javascript// 变量不存在时默认使用set和get设置function __set($key, $value) { $this->arr[$key]=$value;}
function __get($key) { return $this->arr[$key];}
// 方法不存在时默认调用function __call($name, $arr) { echo 方法不存在;}
魔术方法的使用"; } // 变量不存在默认调用set设置get输出 function __set($key, $value) { $this->arr[$key]=$value; } function __get($key) { return $this->arr[$key]; } //方法不存在默认调用 function __call($name, $arr) { return $name."+".json_encode($arr); } // 静态方法不存在默认调用 static function __callStatic($name, $arr) { return $name."+".json_encode($arr); } //将对象转化为字符串 public function __toString() { return __CLASS__; } //将对象转换成一个方法 function __invoke($val) { return $val; } } //$obj=new \php\Main(); // __construct方法 //echo $obj->tiltle="set+get"; //__construct方法 //set+get //print_r($obj->test('name1')) ; //__construct方法 //test+["name1"] //print_r($obj::test('name2')); //__construct方法 //test+["name2"] //echo $obj; //__construct方法 //php\Main //echo $obj("admin"); //__construct方法 //admin
本文共计230个文字,预计阅读时间需要1分钟。
使用魔法方法实现属性访问:
javascript// 变量不存在时默认使用set和get设置function __set($key, $value) { $this->arr[$key]=$value;}
function __get($key) { return $this->arr[$key];}
// 方法不存在时默认调用function __call($name, $arr) { echo 方法不存在;}
魔术方法的使用"; } // 变量不存在默认调用set设置get输出 function __set($key, $value) { $this->arr[$key]=$value; } function __get($key) { return $this->arr[$key]; } //方法不存在默认调用 function __call($name, $arr) { return $name."+".json_encode($arr); } // 静态方法不存在默认调用 static function __callStatic($name, $arr) { return $name."+".json_encode($arr); } //将对象转化为字符串 public function __toString() { return __CLASS__; } //将对象转换成一个方法 function __invoke($val) { return $val; } } //$obj=new \php\Main(); // __construct方法 //echo $obj->tiltle="set+get"; //__construct方法 //set+get //print_r($obj->test('name1')) ; //__construct方法 //test+["name1"] //print_r($obj::test('name2')); //__construct方法 //test+["name2"] //echo $obj; //__construct方法 //php\Main //echo $obj("admin"); //__construct方法 //admin

