Сериализация в PHP

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали о функциях explode() и implode() в php. В данной статье я бы хотел рассказать, что такое сериализация в PHP. С помощью функции implode() мы можем объединить элементы массива в одну строку, а затем данную строку записать в базу данных. При изъятии данной строки из базы данных, её можно разбить и опять продолжить работу с массивом. Всё бы хорошо, но вдруг нам нужно будет работать с многомерными массивами. Как быть в этом случае? Можно конечно написать свою функцию по разбиению и склеиванию таких массивов, но лучше воспользоваться сериализацией в PHP.
Любой объект в PHP можно упаковать в строку, и не важно, что это: строка, массив, содержимое файла, число. Делается это с помощью функции serialize(). Давайте на примере двумерного массива рассмотрим работу данной функции:
<?php $mas = array("1" => array("1" => "odin", "2" => "dva"), "2" => array("3" => "tri", "4" => "chetire")); $serMas = serialize($mas); echo $serMas; //посмотрите, что будет выведено $number = 1; $serNumber = serialize($number); echo "</br> $serNumber"; //посмотрите, что будет выведено ?>
Функция unserialize() принимает в качестве параметра строку, созданную с помощью функции serialize(), и возвращает тот объект, который был упакован.
Давайте распакуем массив $mas, который был упакован в предыдущем примере:
<?php $newMas = unserialize($serMas); print_r($newMas); ?>
Функция print_r() является отладочной функцией, в данном случае она позволяет быстро вывести массив, не прибегая к циклу.
Думаю, вы уловили основное значение сериализации на PHP: это упаковать объект, затем записать его в базу данных. Если с данным объектом необходимо продолжить работу, то его распаковывают. Ведь намного проще хранить строку (которая представляет собой объект), чем придумывать сложную структуру базы данных.
В качестве домашнего задания: создайте одномерный массив, ключами которого будут имена, а значениями — фамилии людей. Упакуйте данный массив. Затем распакуйте его в новую переменную и в цикле выведите все ключи со значениями.
В данной короткой статье вы узнали о такое важной теме, как сериализация в PHP.
P.S. Существует также и другой способ сериализации — это json, но об этом поговорим в одной из следующих статей.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.