PHP的戏法方法
1、__get/__set:对对象属性的接管
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方法
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
- 最新文章
- 热门排行
上一篇: 消息持续发送的完整例子_PHP教程
下一篇: 让PHP学习成为一种习惯
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论