php call_user_func_array() warning -
i using following code in program.
class { function __call($fname,$arguments) { $methods = array('get', 'set'); foreach ($methods $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 getting warrning this
"warning: call_user_func_array() expects parameter 1 valid callback, function 'setmethod' not found or invalid function name"
and program stopped nothing displayed further.
you trying call global function, while need call the object member method.
use array present callback:
call_user_func_array(array($this, "setmethod"), array($fname,$arguments[0]));
same as:
call_user_func_array(array($this, "getmethod"), $fname);
Comments
Post a Comment