我希望能够在父类中声明一个带有未知数量参数的抽象函数:
abstract function doStuff(...);
然后使用一组暗示参数定义实现:
/**
* @param int $userID
* @param int $serviceproviderID
*/
static function doStuff($userID, $serviceproviderID) {}
到目前为止我得到的最好的方法是这个,
abstract function doStuff();
/**
* @param int $userID
* @param int $serviceproviderID
*/
static function doStuff() {
$args = func_get_args();
...
}
但是每次调用该函数时,由于提示,我都会收到一堆“缺少参数”警告。有更好的办法吗?
编辑:问题有误,请不要浪费时间回答。以下是我一直在寻找的内容,它似乎可以在没有警告的情况下工作。
abstract class Parent {
abstract function doStuff();
}
/**
* @param type $arg1
* @param type $arg2
*/
class Child extends Parent {
function doStuff($arg1, $arg2) {
...
}
}
最佳答案
在 PHP 5.6 及更高版本中,参数列表可能包含 ...
标记,以表示该函数接受可变数量的参数。
您可以将其应用到抽象类,如下所示:
abstract class AbstractExample {
public function do_something(...$numbers);
}
参数将作为数组传递到给定变量中。
关于PHP:我可以声明一个具有可变数量参数的抽象函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7068802/