假设以下情况。有类层次结构,在方法中使用各种参数列表,可以为每个后代类扩展。
<?php
header('Content-Type: text/plain; charset=utf-8');
class A {
public function __invoke(){
$arguments = implode(', ', func_get_args());
echo __METHOD__, ' arguments: ', $arguments, PHP_EOL;
}
}
class B extends A {
public function __invoke(){
// ... some actions ...
// call to parent method with current argument list
// ... some actions ...
}
}
?>
如果这个类层次结构是用方法的固定参数实现的__invoke()
,那么我可能会使用类似的东西parent::__invoke($a, $b, $c, $etc);
来实现我的目的。但是,不幸的是,这两个类A
都B
具有一些依赖于各种参数列表的功能。
现在,问题是: 我如何调用parent::__invoke()
并B::__invoke()
传递它的参数列表?
而且,是的,我会让它更复杂:我不能依赖父类的实际名称,因为链可能会进一步扩展。
PS:我只是想在某个地方提一下,因为这件事今天差点救了我的命。