如何使用具有相同方法名称的父类方法的参数?

rgi*_*gin 4 php codeigniter

我知道标题有点混乱,但这是我所能做的最好的事情。= P

希望有人能够提供帮助。

我正在使用CodeIgniter,并且在具有多个参数的基类中有一个方法:

class MY_Base extends CI_Model {

    function some_function($param1, $param2 ... $param8) {
        // do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我想做的基本上是在一个子班上:

class Child extends MY_Base {

    function some_function($param1, $param2 ... $param8) {
        parent::some_function($param1, $param2 ... $param8);
        // call a methods found in this class only
        $this->some_method();
    }

    function some_method() {
        // do more stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法触及基类,因此必须从基类进行扩展。问题是,参数太多。而且这也发生在不同的方法中,有时我会忘记使代码失败的方法。

所以我想知道,是否有办法这样写:

function some_function(__PARAMETERS__) {
    parent::some_function(__PARAMETERS__)
}
Run Code Online (Sandbox Code Playgroud)

我似乎隐约记得这是可能的,但我在Google中找不到。可能是因为我搜索了错误的关键字。

任何帮助,将不胜感激。

编辑:然后,当然,我func_get_args()在发布此问题后找到了。这似乎可以满足我的要求,但是我会把这个问题留给大家更好的主意。

zer*_*kms 6

function some_function($a, $b, $c) {
    call_user_func_array('parent::some_function', func_get_args());
}
Run Code Online (Sandbox Code Playgroud)

警告:PHP> = 5.3

甚至:

function some_function($a, $b, $c) {
    call_user_func_array('parent::' . __FUNCTION__, func_get_args());
}
Run Code Online (Sandbox Code Playgroud)


Aud*_*ile 6

对于PHP> = 7.0,我使用:

parent::{__FUNCTION__}(...func_get_args())
Run Code Online (Sandbox Code Playgroud)