Вам когда-нибудь приходилось хранить комплексные данные в базе или в файле? Для того чтобы сконвертировать объект в строку в PHP предусмотрена специальная функция.
Вообще говоря, этих методов 2: serialize() и unserialize()
// сложный массив
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
);
// конвертируем в строку
$string = serialize($myvar);
echo $string;
/* выведет
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/
// получаем исходное значение
$newvar = unserialize($string);
print_r($newvar);
/* выведет
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/
Вот так вот работают эти функции. Однако из-за бурного роста популярности JSON, в PHP 5.2 были добавлены 2 метода json_encode() и json_decode(). Их работа схожа с serialize():
// сложные массив
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
);
// конвертируем в строку
$string = json_encode($myvar);
echo $string;
/* выведет
["hello",42,[1,"two"],"apple"]
*/
// восстанавливаем исходное значение
$newvar = json_decode($string);
print_r($newvar);
/* prints
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/
Этот вариант более компактный и совместимый с другими языками, такими как JavaScript. Однако при работе с очень навороченными объектами может возникнуть потеря данных.