首先回答我找到的内容是什么:
call_user_func
这个函数同call_user_func_array 一样构成了php的动态调用函数。
我在找到这个答案以前以为会像Java执行Groovy这种模式去调用,在得到这个答案并对比了项目中的代码后发现不是这种结构的。而更像是Java中的反射来实现的。先引用一段代码:
WWW\osv2\ThinkPHP\Mode\Api\functions.php:
200 $result[$key] = is_array($val)
201 ? array_map_recursive($filter, $val)
202 : call_user_func($filter, $val);
203 }
204 return $result;
...
471 parse_str($vars,$vars);
472 }
473: return call_user_func_array(array(&$class,$action.C('ACTION_SUFFIX')),$vars);
474 }else{
475 return false;
以上代码来自于Opensns, 感兴趣的童鞋可以在这里下载 http://git.oschina.net/yhtt2020/OpenSNS-V2
找到程序调用的环节后,我又查看了数据库存入的内容:
'a:1:{i:0;a:5:{s:5:"table";s:6:"member";s:5:"field";s:1:"1";s:4:"rule";s:2:"10";s:5:"cycle";s:2:"24";s:3:"max";s:1:"1";}}'
该端内容描述的意思是在后缀为member的表中,每24小时登录可以积累10分,最多积累1次。
我还没来得及看这段伪代码是如何解析为程序能够识别的方法的,因为这段数据能够描述的情况相对比较固定。而我要实现的任务功能,它的灵活性要达到能够判断服务端的任何一种相应。举几个例子:
任务1:微笑的日常(每天上传一张微笑的图片)
程序的要求要至少能够判断,用户在此任务下,上传了一张图片。
任务2:永不停歇的脚步(每天步行10000步,通过第三方运动app获得当天的运动数据)
任务3:闪客(回复中贴一段视频,并获得10个以上的赞)
有关call_user_func的具体用法,暂时还无法分享。找到此方法的时候我就发现这似乎是一个小白问题,接触PHP时间短,迅速跳到应用开发的环节多少有些吃力。不过任务模块会是趣儿岛最核心的模块,相信以后的二次开发中会时常使用这个功能,有任何新的体会,我再回来继续更新。也欢迎php开发者赐我建(yi)议(si)。
趣儿岛网站 www.qurdao.com 公测了,欢迎访问
您的砖头是我成长的动力,在此多谢了