网站 建设文档,承装承修承试材料在哪个网站做,大东吴建设新材料公司网站,开发手机网站步骤先贴代码#xff0c;代码精简了。$invoker_function($argus);}}?描述#xff1a;程序是在ThinkPHP开发#xff0c;目的是把Cache的get方法接收的参数转发到指定的方法上#xff0c;最后一行#xff1a;其中D方法是ThinkPHP自带的方法用的是单例模式。如果不加参数$ar…先贴代码代码精简了。$invoker_function($argus);}}?描述程序是在ThinkPHP开发目的是把Cache的get方法接收的参数转发到指定的方法上最后一行其中D方法是ThinkPHP自带的方法用的是单例模式。如果不加参数$argus是可以正常调用的。问题现在想传递参数比如get(name,age),完整的传递到 D($invoker_class)-$invoker_function(“name”,age)上有什么办法。call_user_func 看起来像是可以不过看不出来怎么用。求解。回复讨论(解决方案)call_user_func_array(array(D($invoker_class), $invoker_function), $argus);call_user_func_array(array(D($invoker_class), $invoker_function), $argus);哈哈谢谢斑竹发帖前测试一直不成功原来是因为call_user_func_array的第二个参数必须使用数组如果不使用数组就会没有任何反映。。最后完整的代码如下代码烂见谅。。CacheModel.class.php Cache模型文件caculate($argus);$base_str md5($str);if($this-cache_arr[$invoker_class][$invoker_function][key] $base_str){echo 命中cache 没有查询;//命中cachereturn $this-cache_arr[$invoker_class][$invoker_function][value];}$new_invoker_class str_replace(Model,, $invoker_class);$new_invoker_function $invoker_function._setCache;$rs call_user_func_array(array(D($new_invoker_class), $new_invoker_function), $argus);$this-cache_arr[$invoker_class][$invoker_function][key] $base_str;$this-cache_arr[$invoker_class][$invoker_function][value] $rs;return $rs;}/** * * 递归计算所有的参数判定参数是否发生改变 */private function caculate($argus){$str ;foreach ($argus as $key $value){if(is_array($value)){$str . $this-caculate($argus[$key]);}else{$str . $value;}}return $str;}}?测试模型TestModel.class.phpcache D(Cache);}public function run($a,$b,$c){return $this-cache-get($a,$b,$c);}public function run_setCache($a,$b,$c){return 设定3参数预定值;}public function run2(){return $this-cache-get();}public function run2_setCache(){return 设定空预定值;}}?测试用例TestAction.class.phprun(a,b,c);echo $test-run(a,b,c);echo $test-run(a,b,c);$test2 D(Test);echo $test2-run(a,b,c);echo $test2-run2();echo $test2-run2();echo $test2-run2();}}?测试结果设定3参数预定值命中cache 没有查询设定3参数预定值命中cache 没有查询设定3参数预定值命中cache 没有查询设定3参数预定值设定空预定值命中cache 没有查询设定空预定值命中cache 没有查询设定空预定值达到预定设想谢谢斑竹解答。本文原创发布php中文网转载请注明出处感谢您的尊重