Когда я делаю phpinfo () или php -i из CLI, я получаю следующий вывод:
session Registered save handlers => files user sqlite memcached Registered serializer handlers => php php_binary wddx
Я не знал, что сериализация PHP поддерживает двоичный формат, и в документации о нем нет ничего.
Я собирался использовать igbinary для сериализации сеанса на сервере memcached, поэтому мне интересно, как сравнивается php_binary .
igbinary PHP extension предлагает новый сеансовый сериализатор / десериализатор, который отличается от собственных реализаций php , а именно php и php_binary .
Чтобы ответить на ваш вопрос: эти обработчики вообще не сравниваются, они совершенно разные. Различия igbinary вводятся в документах readme.
Я предполагаю, что вы задаете вопрос, потому что вы нашли слово двоичное в двух двоичных файлах: ig и php_. Однако это не говорит много. php_binary сравните php с обработчиком php_binary :
php_binary сериализации / десериализации сериализации php_binary почти идентичен обработчику php по умолчанию. Они отличаются только тем, как кодируются имена переменных, которые входят в сеанс.
php_binary будет префикс всех имен переменных сеанса с двоичной длиной имени. Хотя с php каждое имя переменной имеет суффикс | символ ( \x7C , десятичный \x7C 124 ). Из того, что я знаю, сериализация значений переменной не отличается вообще.
Таким образом, сериализация значений идентична между обработчиком php и php_binary .
Итак, рядом с небольшой разницей в pre / suffix имен переменных сеанса, вопрос действительно спрашивает о том, как igbinary сравнивается с сериализацией php (которая используется в данных сеанса). Эти различия указаны в igbinary readme . Он довольно хорошо описывает, что сделано и почему.
Если вы хотите использовать сериализацию и для сериализации / несериализации, расширение предлагает две функции замены:
igbinary_serialize и igbinary_unserialize – используются как их кузены php.
Если вас беспокоит какая-то особенность различий, спросите пожалуйста.