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

Сериализация в 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, но об этом поговорим в одной из следующих статей.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *