gpt4 book ai didi

php - 如何在 PHP 中使用接口(interface)和魔术方法

转载 作者:行者123 更新时间:2023-12-03 00:09:53 24 4
gpt4 key购买 nike

我想使用接口(interface),但我的一些实现依赖于魔术方法,例如 __invoke 和 __call。我必须从接口(interface)中删除可能被神奇调用(在任何实现中)的方法的签名。这导致了反模式空接口(interface)(是的,我刚刚编造的)。

如何在 PHP 中结合接口(interface)和魔术方法?

最佳答案

将实现中的所有接口(interface)方法分派(dispatch)给 __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) {
...
}
}

至少每个方法的主体可以是相同的。 ;)

关于php - 如何在 PHP 中使用接口(interface)和魔术方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4966340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com