当前位置:首页 > PHP > 正文内容

php序列化闭包函数,php反序列化闭包函数,php如何序列化/存储闭包(Closure)

高老师6年前 (2020-09-05)PHP2273

由于需要为自己的php守护进程投递闭包函数来执行,但是发现php官方根本没有提供php闭包函数的序列化功能。后来在mixphp文档发现了mixphp支持异步进程执行投递的闭包函数才发现了一个神奇的php闭包函数序列化composer包

(1).安装序列化composer包

composer require opis/closure

(2).进行闭包函数的序列化测试

//(1).设置闭包函数
$a = function () {

    echo 'hello world' . PHP_EOL;
};

//(2).序列化闭包函数,输出序列化后的字符串
$b = \Opis\Closure\serialize($a);
echo $b . PHP_EOL;

//(3).反序列化闭包函数,执行还原的闭包函数
$c = \Opis\Closure\unserialize($b);
$c();

输出内容:

C:32:"Opis\Closure\SerializableClosure":176:{a:5:{s:3:"use";a:0:{}s:8:"function";s:53:"function () {

    echo 'hello world' . PHP_EOL;

}";s:5:"scope";N;s:4:"this";N;s:4:"self";s:32:"0000000021005892000000007ec4edd0";}}

hello world

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/157.html

分享给朋友:

“php序列化闭包函数,php反序列化闭包函数,php如何序列化/存储闭包(Closure)” 的相关文章

PHP生成微信分享需要的signature签名

PHP生成微信分享需要的signature签名

因为一个TP项目中客户需要全部网页分享支持自定义图片和描述信息,于是自己封装了下 //share()微信分享链接 //参数1 appid //参数2 appsert //参数3 nonceStr随机码 //参数4 timestamp时间戳 public&nb...

 php xml字符串转数组,phpxml转数组,php 将xml转换成数组

php xml字符串转数组,phpxml转数组,php 将xml转换成数组

001源码:/*  * $xml_str是xml字符串  */ function  xmltoarray($xml_str) { //禁止XML实体扩展攻击 libxml_disable_entity_loader(true); //拒绝包含...

php多进程实现任务管理器,定时执行任务,支持守护

php多进程实现任务管理器,定时执行任务,支持守护

主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /**  * 订单任务  */ class Order {    &n...

cookie跨域,cookie p3p跨域

cookie跨域,cookie p3p跨域

最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...

pcntl_signal(): Error assigning signal

pcntl_signal(): Error assigning signal

当我想在一个进程中监听kill 和 kill -9命令报了这个错误。//监听kill pcntl_signal(SIGTERM, function () {     posix_kill(0, SIGTERM); });...

php jsonp转json,php jsonp转数组,php jsonp转对象

php jsonp转json,php jsonp转数组,php jsonp转对象

将jsonp转为PHP数组和对象。/**  * jsonp转数组|Jsonp转json  * @param string $jsonp jsonp字符串  * @param bool $as...