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

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

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

由于需要为自己的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数组重新排序

PHP数组重新排序

通常我们使用unset()删除数组的元素,数据的顺序并没有重置,使用array_merge()方法即可解决<?php $shoplist= array('a','b','c','d','e','...

PHP计算两个字符串的相似度

PHP计算两个字符串的相似度

<?php echo similar_text("Hello World","Hello Shanghai"); ?> 2.计算两个字符串的相似度,并返回百分比 <?php similar_text("...

php 将数组键值转为变量

php 将数组键值转为变量

<?php $data=array('a'=>1,'b'=>2,'c'=>3,'d'=>4); extract($data); var_dump($a,$b,$c,$d); ?>在人人商城中捡到的...

PHP getenv函数和putenv函数的学习

PHP getenv函数和putenv函数的学习

(1).在PHP中可以查看的环境变量包括: (1.1).电脑环境变量 (2.1).服务器环境变量(2).getenv()函数获取一个环境变量的值.参数1是环境变量的key,参数2值为true的时候仅从你的电脑环境变量中查找,参数2值为false会从两种变量中全部查询//获取我电脑登录的用户名,输出A...

php定义常量数组

php定义常量数组

<?php //php7+ define('CONFIG', [     'MYSQL' => '127.0.0.1',     ...

php event异常处理,php set_exception_handler无效

php event异常处理,php set_exception_handler无效

(1).今天遇到一件奇怪的事情,在event事件中是无法自定义异常处理,例如我们使用set_exception_handler来统一处理异常。例如下面的代码:<?php error_reporting(E_ALL); set_error_handler(function ($errn...