没用过Zend,不过我想ZF2只不过是简单的把闭包函数的代码复制到不同格式的配置文件里,最后肯定都是要重新写回到PHP代码格式的缓存(可以直接运行),不然运行时去解析配置文件,效率太差。

实在需要序列化,可以用反射(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*那个的函数来清理,细节不写了:

$usedVars = use变量们;

$closureBody = 函数体;

// ...

至此params,usedVars,closureBody等等只是数组和字符串了。

php 闭包不能序列化,php如何序列化/存储闭包(Closure)相关推荐

  1. 13-IO流3-转换流对象操作流Properties(jdk11前指定编码读写文字、序列化和反序列化加密存储、)

    文章目录 1.转换流 1.1字符流中和编码解码问题相关的两个类[理解](新学习两个类 ) 1.2转换流读写数据[应用] 2.对象操作流 2.0 引入 2.1对象序列化流[应用] 2.2对象反序列化流[ ...

  2. java 对象怎么序列化,java对象序列化总结

    java对象序列化小结 百度百科上介绍序列化是这样的: 序列化 (Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储 ...

  3. Java序列化闲聊:序列化和Json

    前言 其实我挺纠结的,在纠结到底要不要写这个模块的博客,因为序列化这个模块说简单,按照一些人的说法,其实也就是调两个函数的事情,说困难,铺开就让人感觉范围很广. 序列化 什么是序列化,我们在编程的时候 ...

  4. Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑

    前言 上一篇已经介绍了优雅的操作Redis: [小家Spring]Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入的问题.本篇着重 ...

  5. java get方法不序列化_java常用序列化与反序列化方法

    序列化工具类 序列化即将对象序列化为字节数组,反序列化就是将字节数组恢复成对象. 主要的目的是方便传输和存储. 序列化工具类: public class SerializeUtil { private ...

  6. java序列化流_java 序列化流与反序列化流

    一 对象序列化流ObjectOutputStream ObjectOutputStream 将Java对象的基本数据类型和图形写入OutputStream.可以使用ObjectInputStream ...

  7. java序列化层数_java序列化详解

    一.java序列化与反序列化 序列化是指把java对象(属性)转换为字节序列的过程 反序列化是指把字节序列恢复为java对象的过程 二.为什么需要序列化和反序列化 首先网络通信都是二进制的形式在传输, ...

  8. java序列化原理_Java序列化机制和原理

    Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.Java序列化API提供一 ...

  9. python序列化类_python 序列化

    一.序列化简介 在我们存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储或者传输的数据格式,这个过程叫序列化. 不同的序列化,结果也不同,但是目的都是一样的,都是为了存储和 ...

  10. 【MapReduce】Hadoop的序列化机制以及序列化案例求解每个部门工资总额

    Hadoop的序列化机制以及序列化案例求解每个部门工资总额 1 Hadoop的序列化 1.1 序列化定义 1.2 Java序列化编程 1.3 hadoop序列化编程 2 序列化求解每个部门工资总额 手 ...

最新文章

  1. Python matplotlib 绘制量场图
  2. linux 进程 崩溃被杀 原因查找
  3. 检测跟踪 DeepSOCIAL:基于YOLOv4的人群距离监测 集检测、跟踪以及逆透视映射一体的系统
  4. chromiumfx 4.5_巴中的朋友看过来,大型线上车展来了,开拓者最高综合优惠4.5万!...
  5. redhad6.4 安装zabbix2.4
  6. 引物设计软件_你的引物设计进行得如何了?这份PCR引物设计及软件使用技巧供你参考...
  7. Python AutoCAD 选择集
  8. 安徽农业大学计算机考研分数线,安徽农业大学考研录取分数线
  9. 2019年中国计算机学会(CCF)推荐国际学术会议-计算机网络(2019.04.25)
  10. 2021-2027全球与中国电动汽车PTC加热器市场现状及未来发展趋势
  11. 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
  12. Unity不规则按钮点击区域(UGUI)
  13. MATLAB terminal远程启动桌面GUI界面
  14. 【转】游戏设计的秘密——翻译GDC2010 blizzard的一个演讲
  15. Ubuntu 安装及基本配置(显示、镜像源、网络配置)
  16. 学习笔记2018-10-26 读论文A single algorithm to retrieve turbidity from remotely-sensed data in all coastal
  17. 《财富》公布40岁以下美国富豪榜 戴尔居榜首 [我在IT meets Coupon里提到的两个均在其列]...
  18. 键盘的基本使用(包含各种快捷键的使用)
  19. Luminati通过住宅IP网络工作,其可靠性如何?
  20. PHOTOSHOP CS打造素描MM

热门文章

  1. 【图像聚类】基于matlab GUI K-means算法图像聚类【含Matlab源码 1787期】
  2. 【树叶识别】基于matlab HU不变矩树叶识别【含Matlab源码 797期】
  3. 【语音合成】基于matlab重叠相加法的信号分帧与还原【含Matlab源码 568期】
  4. 【优化算法】多目标粒子群优化算法(MOPSO)【含Matlab源码 033期】
  5. SPSS数据录入【SPSS 007期】
  6. Kardashev量表和AI:可能的床友
  7. tensorflow架构_TensorFlow半监督对象检测架构
  8. php 用pdf转html,使用PHP将HTML PDF转换为PDF
  9. java 的strip_javastript
  10. mysql1232_Mysql执行流程