Что такое сериализация данных и зачем это нужно?

Давайте начнем с самого определения. Сериализация - это процесс представления данных в виде строки. 

Т.е. у нас есть определенный набор данных, который хранится в массиве или он представляет собой некий объект. Если провести процесс сериализации для этого набора данных, то этот набор данных мы представим в виде строки по какому-то определенному набору правил.

В зависимости от применяемого набора правил, на выходе мы получим некую текстовую строку, которая будет оформлена по каким-то правилам. Это набор правил называется форматом. 

Чаще всего при сериализации данных они формируются в формате json. 

Ссылка на видео о том, что такое формат json:

https://webkyrs.info/page/chto-takoe-json

Т.е. у нас был массив данных, который мы преобразовали в некую текстовую строку, которая оформлена определенным образом и которую мы можем выводить и использовать в каком-то месте нашей программы. 

Но, зачем нужно набор данных преобразовывать в текстовую строку?

Дело в том, что с текстовыми строками может работать практически любое устройство. Если мы представляем набор данных в виде текстовой строки, эту строку может обрабатывать любое устройство (персональный компьютер, телефон или планшет). Все эти устройства могут прочитать строку и десериализовать эту строку, т.е. провести обратный процесс сериализации.

Из текстовой строки преобразуем в нужный формат данных, который понятен данному устройству и работать с этими данными.

С помощью этого формата программы на разных языках программирования также могут обмениваться данными. 

Если рассматривать язык программирования php, то за сериализацию и десериализацию данных в языке php отвечают 2 функции json_encode и json_decode. 

Вот такой смысл. Завершаем с теорией и давайте на практике посмотрим, как работать с этими функциями.