php call_user_func_array()警告

I am using following code in my program.

class A {
function __call($fname,$arguments)
{
    $methods = array('get', 'set');
    foreach ($methods as $method) {
        if(strstr($fname,$method))
        {
            $fname = str_replace($method, "", $fname);
            $function = $method."method";
            if($method == "set")
            {
                call_user_func_array("setmethod", array($fname,$arguments[0])); 
            }
            if($method == "get")
            {
                call_user_func_array("getmethod", $fname);
            }
            break;
        }
    }
}

function setmethod ($key,$value)
{
    $this->$key = $value;
}

function getmethod($key)
{
    return $this->$key;
}
}

and I am getting warrning like this

"Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'setmethod' not found or invalid function name"

and the program get stopped nothing is displayed further.

You are trying to call the global function, while what you need to call the the object member method.

Use an array to present the callback:

call_user_func_array(array($this, "setmethod"), array($fname,$arguments[0])); 

Same as:

call_user_func_array(array($this, "getmethod"), $fname);