PHP的魔术方法
2015-06-30 16:47
639 查看
1、__get/__set:对对象属性的接管
2、__call/__callStatic:控制php对象方法的使用
3、__toString:将php对象转换成字符串
4、__invoke:将一个php对象当成函数来执行时来回调这个方法
$Obj = new Object();
$Obj->title = “你好”;//当对一个对象不存在的属性赋值的时候,它就会自动调用__set方法
echo $Obj->title;//对去读取一个对象不存在的属性的时候,它就会自动调用__get方法
echo $Obj->test(“hello”,”123”); //当调用一个对象不存在的方法时,就会自动调用__call方法
echo $Obj::test1(“hello1”,”1234”); //当调用一个对象不存在的静态方法时,就会自动调用__callStatic方法
echo $Obj;//当直接输出一个对象时(因为对象不能直接输出),就会自动调用__toString方法把对象转换成字符串
echo $Obj(“hello”);//当将一个对象当成一个函数来使用的时候,就会自动调用__invoke方法
2、__call/__callStatic:控制php对象方法的使用
3、__toString:将php对象转换成字符串
4、__invoke:将一个php对象当成函数来执行时来回调这个方法
class Object { protected $array = array(); function __set($key,$value) { var_dump(__METHOD__); $this->array[$key] = $value; } function __get($key) { var_dump(__METHOD__); return $this->array[$key]; } function __call($func,$param) { var_dump($func,$param); return "magic mathod __call"; } static function __callStatic($func,$param) { var_dump($func,$param); return "magic mathod __callStatic"; } function __toString() { return "__toString"; } function __invoke($param) { var_dump($param); return "invoke"; } }
$Obj = new Object();
$Obj->title = “你好”;//当对一个对象不存在的属性赋值的时候,它就会自动调用__set方法
echo $Obj->title;//对去读取一个对象不存在的属性的时候,它就会自动调用__get方法
echo $Obj->test(“hello”,”123”); //当调用一个对象不存在的方法时,就会自动调用__call方法
echo $Obj::test1(“hello1”,”1234”); //当调用一个对象不存在的静态方法时,就会自动调用__callStatic方法
echo $Obj;//当直接输出一个对象时(因为对象不能直接输出),就会自动调用__toString方法把对象转换成字符串
echo $Obj(“hello”);//当将一个对象当成一个函数来使用的时候,就会自动调用__invoke方法
相关文章推荐
- C#中Invoke 和 BeginInvoke 的真正涵义
- The remote procedure call failed and did not execute的解决办法
- javascript中call和apply的用法示例分析
- 理解Javascript的caller,callee,call,apply区别
- 理清apply(),call()的区别和关系
- Javascript中call与apply的学习笔记
- 理解JavaScript的caller,callee,call,apply
- javascript call方法使用说明
- ToString()使用方法汇总(c#)
- JavaScript中apply与call的用法意义及区别说明
- 完美解决IE低版本不支持call与apply的问题
- JavaScript中的apply()方法和call()方法使用介绍
- JavaScript学习点滴 call、apply的区别
- js apply/call/caller/callee/bind使用方法与区别分析
- php 魔术方法使用说明
- php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
- Function.prototype.call.apply结合用法分析示例
- JavaScript 学习笔记(九)call和apply方法
- Javascript
- 由JavaScript中call()方法引发的对面向对象继承机制call的思考