新手求助-函数动态获取参数

浏览:700 发布日期:2014/03/01 分类:求助交流 关键字: 函数,参数
因为项目开发的需要,我需要做一个动态生成函数参数的东西,包括参数格式都要动态,例如:
通过JQ的$.get传一个json到Common/list,json里面包含了函数名和参数已经参数内容格式:

json:                     'type':'function',
                            'f_name':'get_info_zdCA',
                            'f_var':[
                              {
                                  'type':'combine',
                                  'value':[
                                  {
                                      'type':'fixed',
                                      'value':'app_category_id'
                                  },
                                  {
                                      'type':'fixed',
                                      'value':'='
                                  },
                                  {
                                      'type':'key',
                                      'value':'app_category_id'
                                  }

                                  ]
                              },
                              {
                                  'type':'fixed',
                                  'value':'app_category'
                              },
                              {
                                  'type':'fixed',
                                  'value':'app_category'
                              }
                              ]
这段代码想要实现的实际上是:{:get_info_zdCA('app_category_id ='.$key['app_category_id'],'app_category','app_category')}
get_info_zdCA(条件,表名,输出字段),用来获取某张表中满足条件的某个这段值;
处理这段JSON的时候,为了通用,我做了一个转换函数,将JSON转换成上面的这个函数需要的参数格式,该函数格式为:translate_f($list,$kk)《translate_f(值数组,上面这一整段代码)》,$list就是volist里面的循环的$vo,通过translate_f()将$kk循环存储在$var_str[]中,然后:
return $kk['f_name'](implode(',',$var_str));
问题来了:
1.当只有一个参数的时候可是实现;
2.当我把函数get_info_zdCA()的参数改为数组的时候,translate_f返回改为$kk['f_name']($var_str),get_info_zdCA()里面的三个参数依照顺序从数组中取出时,可以使用;
3.但是我开始的那种写法不能使用,而且type为combine的时候我同样使用的是implode来组合这个格式,这个点上也会出错,也就是在2中的get_info_zdCA能正常使用的时候,get_info_zdCA()的第一个参数我也是要写死的。


求解。
好心人能加个QQ最好:549339569



最佳答案
评论( 相关
后面还有条评论,点击查看>>