Как сериализовать объект в php?

Пользователь

от brenna , в категории: PHP , год назад

Как сериализовать объект в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fidel , год назад

@brenna 

В PHP объект может быть сериализован с использованием функций serialize() и unserialize().


Функция serialize() принимает объект и возвращает его строковое представление в виде сериализованной строки. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class MyClass {
    public $property1;
    public $property2;
}

$obj = new MyClass();
$obj->property1 = 'value1';
$obj->property2 = 'value2';

$serializedObj = serialize($obj);


Функция unserialize() принимает сериализованную строку и возвращает объект, восстанавливая его из сериализованного состояния. Например:

1
$unserializedObj = unserialize($serializedObj);


Помимо этого, объект может быть сериализован автоматически при сохранении в файле или передаче через сеть с использованием соответствующих функций, таких как file_put_contents(), file_get_contents(), fwrite(), fread(), curl, и т.д.

Пользователь

от nicola , 4 месяца назад

@brenna 

Дополнительно, можно использовать JSON для сериализации объектов в PHP при помощи функций json_encode() и json_decode().


Пример сериализации объекта в JSON:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class MyClass {
    public $property1;
    public $property2;
}

$obj = new MyClass();
$obj->property1 = 'value1';
$obj->property2 = 'value2';

$jsonObj = json_encode($obj);


Пример десериализации объекта из JSON:

1
2
$jsonObj = '{"property1":"value1","property2":"value2"}';
$obj = json_decode($jsonObj);


При использовании JSON для сериализации объектов, учтите, что не все типы данных могут быть сохранены в JSON, например, ресурсы или некоторые специфичные объекты PHP могут быть утеряны при этом способе сериализации.