从_call()函数$ arg数组创建动态参数列表

时间:2013-11-12 09:41:45

标签: php oop

我正在将php库升级到最新版本(有点重写)&我遇到的一个问题是作者决定完成他所有的功能。他一直这样做,所以我想在继承的类中尝试这个技巧:

<?php
// this will extend animal..just demo code
class dog {

public function __call($method, $args) {
    // I have a function to camelcase this - only for developing
    $call_method = 'barkLoud';

    //this is so it doesn't blow up - this is what I'm trying to fix
    $myArgsList = 120;  
    $this->$call_method($myArgsList);
}   

function barkLoud($decibals)
{
    echo 'Barking at '. $decibals;
}
}

$poppy = new dog;
print $poppy->bar_loud(100);

我不明白该怎么做:将有一个可变数量的参数,变量类型(整数,字符串,数组,对象......)

如何以这样的方式分解$ args,使其正确构建参数列表,该列表将出现在$ myArgList占位符现在的位置?

(请记住,我的args可能是数组或对象,所以请不要建议使用implode()构建字符串...另外请记住我根本不想更改新的Library类。

TIA

1 个答案:

答案 0 :(得分:0)

使用return call_user_func_array(array($this,$call_method), $args);