(PHP 4 >= 4.0.5, PHP 5)
call_user_method_array — Call a user method given with an array of parameters [deprecated]
The call_user_method_array() function is deprecated as of PHP 4.1.0.
The method name being called.
The object that method_name is being called on.
An array of parameters.
Beispiel #1 call_user_method_array() alternative
<?php
call_user_func_array(array($obj, $method_name), $params);
call_user_func_array(array(&$obj, $method_name), $params); // PHP 4
?>
You don't have to write a new function, <?php call_user_func_array(array($obj, $method_name), $params); ?> works pretty fine! (to my mind, 'eval' fucntion should be avoided almost all the time)
<?php
/**
 * @param string $func - method name
 * @param object $obj - object to call method on
 * @param boolean|array $params - array of parameters
 */
function call_object_method_array($func, $obj, $params=false){
    if (!method_exists($obj,$func)){        
        // object doesn't have function, return null
        return (null);
    }
    // no params so just return function
    if (!$params){
        return ($obj->$func());
    }        
    // build eval string to execute function with parameters        
    $pstr='';
    $p=0;
    foreach ($params as $param){
        $pstr.=$p>0 ? ', ' : '';
        $pstr.='$params['.$p.']';
        $p++;
    }
    $evalstr='$retval=$obj->'.$func.'('.$pstr.');';
    $evalok=eval($evalstr);
    // if eval worked ok, return value returned by function
    if ($evalok){
        return ($retval);
    } else {
        return (null);
    }        
    return (null);   
}
?>
If you this function will be deleted in future php releases you can use this function:
<?
       function _call_user_method_array($name, $obj, $params) {
           // get params
           $txt = "";
           foreach($params as $nr => $el) {
               $txt.='$params['.$nr."], ";
           }
           $txt = substr($txt, 0, strlen($txt)-2);
           // run it
           return eval('return call_user_method($name, $obj, '.$txt.');');           
       }
?>
Hope this helps somebody.