博客列表 >事件委托的应用

事件委托的应用

于星辉
于星辉原创
2021年08月18日 20:02:58567浏览
  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. ?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议