【发布时间】:2017-09-30 08:16:09
【问题描述】:
假设我有几个类和一个方法
public function foo (int $a, int $b, ..) {..}
其中参数的数量取决于特定的类(但对于特定的类是固定的)。
有没有办法将这样的方法放入接口中,以便我的所有类都可以实现该接口?
我认为可变参数在这里没有帮助,因为我需要将我所有的 foo 实现定义为
public function foo(int ...$ints) {..}
丢失了有关特定类需要多少参数的信息。
有什么可以使用的诡计吗?
附:我真的很想避免异常,所以我不能只检查参数的数量是否以编程方式匹配
【问题讨论】:
-
传递参数数组而不是单个参数。
-
@BSB 这就是您使用可变参数所拥有的。有点丢失了每个类需要多少参数的信息
-
无法完全理解。但是如果你想要传递的参数数量,你可以计算参数数组索引。
-
我可以这样做,但如果数字错误怎么办?我想强制我班级的客户传递正确数量的参数