php 闭包不能序列化,php如何序列化/存储闭包(Closure)
没用过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)相关推荐
- 13-IO流3-转换流对象操作流Properties(jdk11前指定编码读写文字、序列化和反序列化加密存储、)
文章目录 1.转换流 1.1字符流中和编码解码问题相关的两个类[理解](新学习两个类 ) 1.2转换流读写数据[应用] 2.对象操作流 2.0 引入 2.1对象序列化流[应用] 2.2对象反序列化流[ ...
- java 对象怎么序列化,java对象序列化总结
java对象序列化小结 百度百科上介绍序列化是这样的: 序列化 (Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储 ...
- Java序列化闲聊:序列化和Json
前言 其实我挺纠结的,在纠结到底要不要写这个模块的博客,因为序列化这个模块说简单,按照一些人的说法,其实也就是调两个函数的事情,说困难,铺开就让人感觉范围很广. 序列化 什么是序列化,我们在编程的时候 ...
- Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑
前言 上一篇已经介绍了优雅的操作Redis: [小家Spring]Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入的问题.本篇着重 ...
- java get方法不序列化_java常用序列化与反序列化方法
序列化工具类 序列化即将对象序列化为字节数组,反序列化就是将字节数组恢复成对象. 主要的目的是方便传输和存储. 序列化工具类: public class SerializeUtil { private ...
- java序列化流_java 序列化流与反序列化流
一 对象序列化流ObjectOutputStream ObjectOutputStream 将Java对象的基本数据类型和图形写入OutputStream.可以使用ObjectInputStream ...
- java序列化层数_java序列化详解
一.java序列化与反序列化 序列化是指把java对象(属性)转换为字节序列的过程 反序列化是指把字节序列恢复为java对象的过程 二.为什么需要序列化和反序列化 首先网络通信都是二进制的形式在传输, ...
- java序列化原理_Java序列化机制和原理
Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.Java序列化API提供一 ...
- python序列化类_python 序列化
一.序列化简介 在我们存储数据或者网络传输数据的时候,需要对我们的对象进行处理,把对象处理成方便存储或者传输的数据格式,这个过程叫序列化. 不同的序列化,结果也不同,但是目的都是一样的,都是为了存储和 ...
- 【MapReduce】Hadoop的序列化机制以及序列化案例求解每个部门工资总额
Hadoop的序列化机制以及序列化案例求解每个部门工资总额 1 Hadoop的序列化 1.1 序列化定义 1.2 Java序列化编程 1.3 hadoop序列化编程 2 序列化求解每个部门工资总额 手 ...
最新文章
- Python matplotlib 绘制量场图
- linux 进程 崩溃被杀 原因查找
- 检测跟踪 DeepSOCIAL:基于YOLOv4的人群距离监测 集检测、跟踪以及逆透视映射一体的系统
- chromiumfx 4.5_巴中的朋友看过来,大型线上车展来了,开拓者最高综合优惠4.5万!...
- redhad6.4 安装zabbix2.4
- 引物设计软件_你的引物设计进行得如何了?这份PCR引物设计及软件使用技巧供你参考...
- Python AutoCAD 选择集
- 安徽农业大学计算机考研分数线,安徽农业大学考研录取分数线
- 2019年中国计算机学会(CCF)推荐国际学术会议-计算机网络(2019.04.25)
- 2021-2027全球与中国电动汽车PTC加热器市场现状及未来发展趋势
- 若干思考:从如何确定投资者是风险偏好者、风险中性者还是风险规避者 到 上学真的无用吗的思考?
- Unity不规则按钮点击区域(UGUI)
- MATLAB terminal远程启动桌面GUI界面
- 【转】游戏设计的秘密——翻译GDC2010 blizzard的一个演讲
- Ubuntu 安装及基本配置(显示、镜像源、网络配置)
- 学习笔记2018-10-26 读论文A single algorithm to retrieve turbidity from remotely-sensed data in all coastal
- 《财富》公布40岁以下美国富豪榜 戴尔居榜首 [我在IT meets Coupon里提到的两个均在其列]...
- 键盘的基本使用(包含各种快捷键的使用)
- Luminati通过住宅IP网络工作,其可靠性如何?
- PHOTOSHOP CS打造素描MM
热门文章
- 【图像聚类】基于matlab GUI K-means算法图像聚类【含Matlab源码 1787期】
- 【树叶识别】基于matlab HU不变矩树叶识别【含Matlab源码 797期】
- 【语音合成】基于matlab重叠相加法的信号分帧与还原【含Matlab源码 568期】
- 【优化算法】多目标粒子群优化算法(MOPSO)【含Matlab源码 033期】
- SPSS数据录入【SPSS 007期】
- Kardashev量表和AI:可能的床友
- tensorflow架构_TensorFlow半监督对象检测架构
- php 用pdf转html,使用PHP将HTML PDF转换为PDF
- java 的strip_javastript
- mysql1232_Mysql执行流程