假設以下情況。有類層次結構,它在方法中使用各種參數列表,可以爲每個後代類進行擴展。使用各種參數列表從子方法調用父方法
<?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 ...
}
}
?>
如果該類hierarhy用__invoke()
方法的固定參數來實現的話,我可能會使用類似parent::__invoke($a, $b, $c, $etc);
達到我的目的。但是,不幸的是,A
和B
這兩個類都有一些功能,它依賴於各種參數列表。
現在的問題:我怎麼能說parent::__invoke()
從B::__invoke()
,並通過它的參數列表?
而且,是的,我會讓它更加複雜:我不能依賴父類的實際名稱,因爲鏈可能會進一步擴展。
個人識別碼:我只是想在某個地方提一下,因爲這件事幾乎救了我今天的生活。