Ema*_*olm 13 php interface magic-methods
我想使用接口,但我的一些实现依赖于魔术方法,如__invoke和__call.我必须从界面中删除可能被神奇地(在任何实现中)调用的方法的签名.这导致反模式空接口(是的,我刚刚做到了).
如何在PHP中结合接口和魔术方法?
Dav*_*ess 12
让实现中的所有接口方法都调度到__call()
.它涉及许多糟糕的剪切和粘贴工作,但它的工作原理.
interface Adder {
public function add($x, $y);
}
class Calculator implements Adder {
public function add($x, $y) {
return $this->__call(__FUNCTION__, func_get_args());
}
public function __call($method, $args) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
至少每种方法的主体可以是相同的.;)
归档时间: |
|
查看次数: |
3634 次 |
最近记录: |