php如何序列化/存储闭包(Closure)

 我来答
芥末芥末的1tcy
2013-12-06 · TA获得超过185个赞
知道答主
回答量:135
采纳率:71%
帮助的人:59.2万
展开全部
实在需要序列化,可以用反射(Reflection),并直接操作代码文件获得上下文信息:/*** 创建一个反射:*/$reflection = new ReflectionFunction($closure);/*** 参数可以直接得到了:*/$params = $reflection-getParameters();/*** 获得Closure的函数体和use变量,形如: * function($arg1, $arg2, ...) use ($val1, $val2, ...) { * // 要获得这个部分的代码!* }* 办法很多,你可以直接用正则、字符串查找或者Tokenizer,等等等等。 * 比如可以先从reflection里得到函数的开始行和结束行:*/$startLine = $reflection-getStartLine(); $endLine = $reflection-getEndLine(); // 然后用str*这个,str*那个的函数来清理,细节不写了:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式