1. <?php
  2. /**
  3. * 事件委托:请求委托 访问类中不存在的成员方法时,会被 魔术方法拦截,把请求重写到别的类的成员方法来处理
  4. * 委托是指一个对象转发或者委托一个请求给另一个对象,被委托的一方替原先对象处理请求
  5. * 委托比继承更加灵活,父类与子类的关系是固定的,只能单继承,但是请求可以委托给多个对象
  6. */
  7. // 被委托的类
  8. class Base{
  9. public function write(...$args)
  10. {
  11. printf('调用的不存在方法%s(),参数列表有[% s]<br>',__METHOD__,implode(',',$args));
  12. }
  13. }
  14. class Work
  15. {
  16. protected $Base;
  17. public function __construct(Base $Base)
  18. {
  19. $this->Base = $Base;
  20. }
  21. public function __call($method, $arg)
  22. {
  23. $this->Base->$method(...$arg);
  24. }
  25. }
  26. $base = new Base;
  27. $work = new Work($base);
  28. $work->write(1,2.3,4);
  29. ?>

更多相关文章

  1. 有同学问我:Fetch 和 Ajax 有什么区别?
  2. 数据库请求委托代理
  3. php快递查询接口,一次接入顺丰、京东、申通、圆通、韵达、中通、
  4. PHP全国快递寄件接口,1天接入四通一达,极兔,宅急送,德邦,京东,天
  5. 【前端 · 面试 】HTTP 总结(九)—— HTTP 协商缓存
  6. 【前端 · 面试 】HTTP 总结(七)—— HTTP 缓存概述
  7. 【前端 · 面试 】HTTP 总结(六)—— HTTP 版本区别
  8. 【前端 · 面试 】HTTP 总结(五)—— GET 和 POST
  9. 【前端 · 面试 】HTTP 总结(四)—— HTTP 状态码

随机推荐

  1. 用15行perl打造win32下的简易后门 python
  2. python使用多进程爬取图片
  3. Python 3.4 AssertEqual()在Django单元测
  4. pandas - 将嵌套字典值映射到dataframe
  5. 【python coding 1:网络检测】ping本地文
  6. 在Python中搜索一个并行数组
  7. python的requests类库(一)requests库和urll
  8. uwsgi遇到ImportError: No module named
  9. Gunicorn + Django + Heroku。Python的路
  10. Python 【面向对象(类)】 学习笔记