【问题标题】:Why can't closures be serialized in PHP? [duplicate]为什么不能在 PHP 中序列化闭包? [复制]
【发布时间】:2021-12-29 05:03:38
【问题描述】:

我知道可以使用第三方包来完成,但是 PHP 不能自己序列化闭包有什么技术原因吗?

【问题讨论】:

标签: php serialization


【解决方案1】:

因为它不是数据。序列化是一个仅适用于数据的术语。

序列化闭包就像“抽出一个想法”,一个想法不是一个可以点燃的物理事物,所以你不能抽它。现在,您可以在一张纸上写下一个想法,然后将其点燃并吸烟;但实际上,这仍然不是冒这个主意的行为。

同样,您可以获取用于创建闭包的代码行,并且可以序列化与其相关的所有变量,并以某种方式描述其上下文(例如它曾经位于哪个文件等),然后序列化所有这些。但同样,这并不是真正序列化闭包

基本上,人们通常会在数据方面遇到某种类型的问题,并且他们通常最终使用序列化来解决该问题。现在,当这些相同的人遇到相同类型的问题但关于闭包而不是数据时;他们最终可能会搜索“如何序列化闭包”,而没有考虑到潜在的现实。

对于最初的问题有解决方案的图书馆,可能会宣传自己提供闭包序列化,因为从 SEO/广告的角度来看,这是有道理的;但这并不是他们代码实际作用的准确描述。

【讨论】:

    猜你喜欢
    • 2020-03-18
    • 2012-11-24
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2017-02-14
    • 2013-05-26
    相关资源
    最近更新 更多