igbinary
PHP 扩展确实提供了一个新的会话序列化/反序列化处理程序,它不同于 PHP 自己的实现,即php
和php_binary
.
回答您的问题:这些处理程序根本没有比较,它们完全不同。igbinary引入的差异记录在项目自述文件中。
我假设您在问这个问题,因为您在两者中找到了binary一词: ig binary和 php_ binary。然而,这并没有说太多。php
首先与处理程序进行比较php_binary
:
会话序列化php_binary
/反序列化处理程序与默认处理程序几乎相同php
。它们的区别仅在于会话中的变量名称是如何编码的。
php_binary
将在所有会话变量名称前加上名称的二进制长度。而php
每个变量名都有一个|
字符后缀(\x7C
, decimal 124
)。据我所知,变量值的序列化根本没有区别。
php
所以值的序列化在和php_binary
处理程序之间是相同的。
因此,除了会话变量名称的前/后缀的微小差异之外,问题实际上是询问如何igbinary
与 php 序列化(在会话数据中使用)进行比较。igbinary
自述文件中概述了这些差异。它很好地描述了做了什么以及为什么。
如果您也喜欢将igbinary
序列化用于序列化/反序列化,该扩展提供了两个替换功能:
igbinary_serialize
和igbinary_unserialize
- 像他们的 php 表兄弟一样使用。
如果您担心差异的某些细节,请询问。