Php - 参数数量未知的接口方法

时间:2017-09-30 08:16:09

标签: php oop interface

假设我有几个带有方法的类

public function foo (int $a, int $b, ..) {..}

其中参数的数量取决于特定的类(但对于特定的类是固定的)。

有没有办法将这样的方法放在接口中,以便我的所有类都可以实现该接口?

我不认为变量可以在这里提供帮助,因为我需要将所有foo实现定义为

public function foo(int ...$ints) {..}

丢失了有关特定类需要多少参数的信息。

可以使用任何技巧吗?

P.S。我真的想避免异常,所以我不能检查参数的数量是否与编程匹配

2 个答案:

答案 0 :(得分:0)

如果不使用func_num_argscount($ints)之类的内容并在失败时抛出异常,则无法实现这一目标。

这似乎也是一个潜在的设计缺陷。

如果你真的需要一个接口而你的参数是一组值,我真的建议接收一个数组并检查该数组中项目的数量和类型。

答案 1 :(得分:-1)

如果参数不同,虽然方法的名称相同,但它不是同一个接口。这很简单。

你正试图在方孔中放一个圆钉。