php 动态参数,php怎么实现动态传参数?
先贴代码,代码精简了。
$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.php
cache = 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.php
run("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中文网,转载请注明出处,感谢您的尊重!
php 动态参数,php怎么实现动态传参数?相关推荐
- php判断参数_php检查函数必传参数是否存在的实例详解
php检查函数必传参数是否存在的实例详解 在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何"检查函数必传参数是否存在"呢?为了解决 ...
- php http传参数,http - PHP的URL传参数(英文句号变成了下划线)的问题,求解释。...
GET参数里面的.号(英文的句号)会变成_(英文的下划线). 我仔细分析了这个问题,发现确实是这样. 在线测试地址: http://moonlordapi.sinaapp.com/test.php?. ...
- jsx怎么往js里传参数_给js文件传参数(详解)
一.利用全局变量 这是最简单的一种方式,比如Google Adsense: 缺点是引入了全局变量.其中引入文件的方式还有两个变体: // 变体1:用document.write输出 document. ...
- uploadify 3.2 后台动态传参数
最近在弄一个上传的小功能,需要往后台传递一些动态参数,网上有一些传参数可能是因为版本不对也没成功.仔细看了官网的一些说明,搞定了. 3.2中传递参数用的的是'formData':{'somekey': ...
- .net前台ajax,asp.net利用Ajax和Jquery在前台向后台传参数并返回值
1----------前台 首先需要 Jquer的包 下面是 $(function () { $('#txtUserName').blur(function () { var username = $ ...
- oracle存储过程传整数,oracle存储过程传参数
场景:Oracle存储过程传参数有关问题 Oracle存储过程传参数问题 在存储过程当中传参数的时候可以使用 IF SDATE IS NOT NULL OR EDATE IS NOT NULL THE ...
- python中自定义函数如何传递动态参数_python 函数的动态参数
1. 函数的动态参数 1. *args 位置参数动态传参 2. **kwargs 关键字参数动态传参 顺序:位置参数, *args, 默认值, **kwargs def func(*args, **k ...
- C语言通过函数参数不能带出动态内存的例子。
实验结论:通过函数参数不能带出动态内存,函数参数虽然为指针,其实是在函数内部的临时变量,只是该指针的初始值是通过调用函数赋值的.C语言函数参数都是传值的. #include <stdio.h&g ...
- Jenkins 流水线 获取git 分支列表_使用Jenkins Git参数实现分支标签动态选择
1.1 为什么要使用GIT参数? 我们为什么要使用 git参数呢? 每个项目代码库都会有不同的分支,(如果你没有用多分支流水线的情况下)对于普通的流水线项目我们可以 让一条流水线来支持多个分支的发布, ...
- oracle 执行带参数的sql语句_当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现?...
当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现? 描述详细一点就是:在要执行的SQL语句中所用到(: parameter)这种参数的个数,因具体条件不同,而 ...
最新文章
- (cljs/run-at (JSVM. :all) Metadata就这样哦)
- windows 2012 r2 x64 安装IIS注意事项
- 谷歌大脑科学家亲解 LSTM:一个关于“遗忘”与“记忆”的故事 本文作者:奕欣	2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入门介绍了,看不懂的话欢迎关注「AI 科技
- 【新星计划】MATLAB绘制图形
- Flink 助力美团数仓增量生产
- 用多媒体库 Bass.dll 播放 mp3 [8] - 实时显示左右声道的峰值
- mysql对表中添加属性_菜鸟笔记—数据分析师MySQL篇(一)
- 设置axios默认访问前缀
- 便携本市场一片混乱 东芝也加入战斗
- 51Testing第五期电子杂志下载
- 真不好意思,关于小猪妹(妖精)的
- iOS底层探索之多线程(七)—GCD源码分析(死锁的原因)
- linux svn备份,SVN完全备份svnadmin hotcopy
- 瘦AP如何连接到无线控制器AC
- ifconfig command not found
- java.lang.IllegalArgumentException介绍
- 如何在智星云主机配置 conda 和 pip 源
- 基于Litepal数据库开发的记事软件
- CSR8670/CSR8675多国语言字库显示逻辑
- 给整个Scratch作品加密
热门文章
- Diango博客--11.Nginx + Gunicorn + Supervisor 方式部署
- python pip install指定国内源镜像
- JDBC笔记02-数据库连接池 Spring JDBC
- Django/Flask/Tornado三大web框架性能分析
- JSON(JavaScript Object Notation) 格式
- Linux基本操作【作业】
- pvrect r语言 聚类_R语言实现KEGG通路富集可视化
- postgis 导出 栅格_postgis常见的空间数据的导入导出
- java 将要死亡_人在即将死亡的时候,能意识到自己将要死亡了吗?科学家给出答案...
- Linux进程全解4——fork创建子进程