事件委托的应用
16lz
2021-08-19
<?php
/**
* 事件委托:请求委托 访问类中不存在的成员方法时,会被 魔术方法拦截,把请求重写到别的类的成员方法来处理
* 委托是指一个对象转发或者委托一个请求给另一个对象,被委托的一方替原先对象处理请求
* 委托比继承更加灵活,父类与子类的关系是固定的,只能单继承,但是请求可以委托给多个对象
*/
// 被委托的类
class Base{
public function write(...$args)
{
printf('调用的不存在方法%s(),参数列表有[% s]<br>',__METHOD__,implode(',',$args));
}
}
class Work
{
protected $Base;
public function __construct(Base $Base)
{
$this->Base = $Base;
}
public function __call($method, $arg)
{
$this->Base->$method(...$arg);
}
}
$base = new Base;
$work = new Work($base);
$work->write(1,2.3,4);
?>
更多相关文章
- 有同学问我:Fetch 和 Ajax 有什么区别?
- 数据库请求委托代理
- php快递查询接口,一次接入顺丰、京东、申通、圆通、韵达、中通、
- PHP全国快递寄件接口,1天接入四通一达,极兔,宅急送,德邦,京东,天
- 【前端 · 面试 】HTTP 总结(九)—— HTTP 协商缓存
- 【前端 · 面试 】HTTP 总结(七)—— HTTP 缓存概述
- 【前端 · 面试 】HTTP 总结(六)—— HTTP 版本区别
- 【前端 · 面试 】HTTP 总结(五)—— GET 和 POST
- 【前端 · 面试 】HTTP 总结(四)—— HTTP 状态码