【发布时间】:2021-12-29 05:03:38
【问题描述】:
我知道可以使用第三方包来完成,但是 PHP 不能自己序列化闭包有什么技术原因吗?
【问题讨论】:
-
查看此答案的 cmets:stackoverflow.com/a/13734344/1427345
标签: php serialization
我知道可以使用第三方包来完成,但是 PHP 不能自己序列化闭包有什么技术原因吗?
【问题讨论】:
标签: php serialization
因为它不是数据。序列化是一个仅适用于数据的术语。
序列化闭包就像“抽出一个想法”,一个想法不是一个可以点燃的物理事物,所以你不能抽它。现在,您可以在一张纸上写下一个想法,然后将其点燃并吸烟;但实际上,这仍然不是冒这个主意的行为。
同样,您可以获取用于创建闭包的代码行,并且可以序列化与其相关的所有变量,并以某种方式描述其上下文(例如它曾经位于哪个文件等),然后序列化所有这些。但同样,这并不是真正序列化闭包。
基本上,人们通常会在数据方面遇到某种类型的问题,并且他们通常最终使用序列化来解决该问题。现在,当这些相同的人遇到相同类型的问题但关于闭包而不是数据时;他们最终可能会搜索“如何序列化闭包”,而没有考虑到潜在的现实。
对于最初的问题有解决方案的图书馆,可能会宣传自己提供闭包序列化,因为从 SEO/广告的角度来看,这是有道理的;但这并不是他们代码实际作用的准确描述。
【讨论】: