[PHP] 怎样使用字符串传递匿名函数/闭包呢?

发布于 2022-09-03 19:25:09 字数 85 浏览 26 评论 0

PHP可以通过序列化serialize生成字符串传递对象、数组等格式,但serialize不支持序列化闭包。
有什么方法可以使用字符串传递闭包呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葮薆情 2022-09-10 19:25:09

闭包是匿名函数,既然是匿名的,目测没法通过传递一个字符串名字来传递闭包。

但是,闭包也是可以序列化的 -- 使用这个库就可以了: https://github.com/jeremeamia...

用法示例代码中已经讲的很清楚了:

use SuperClosure\Serializer;

$serializer = new Serializer();

$greeting = 'Hello';
$hello = function ($name = 'World') use ($greeting) {
    echo "{$greeting}, {$name}!\n";
};

$hello('Jeremy');
//> Hello, Jeremy!

$serialized = $serializer->serialize($hello);
// ...
$unserialized = $serializer->unserialize($serialized);

$unserialized('Jeremy');
//> Hello, Jeremy!

很简单有没有。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文