функция обработки переменных PHP, serialize () - PullRequest
2 голосов
/ 18 марта 2011

Прежде всего, я прочитал руководство по PHP, я проверил его. Во-вторых, я до сих пор не понимаю, что это на самом деле? Зачем мне сериализовать переменную?

Ответы [ 6 ]

5 голосов
/ 18 марта 2011

Возможно, вы не захотите сериализовать переменную как таковую, но полезно сериализовать объекты и другие сложные структуры данных.

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

Это один глупый пример, но сохранение объектов в базе данных очень полезно, если вы об этом думаете.

5 голосов
/ 18 марта 2011

Причиной может быть сохранение значения в текстовом файле или базе данных.serialize () преобразует нетекстовые значения в текст (например, двоичные целочисленные значения или значения с плавающей точкой), чтобы их можно было легко сохранить в этом формате и легко преобразовать обратно с помощью unserialize () ... если вы действительно просматриваете файл сессииэто массив $ _SESSION, хранящийся в виде сериализованной строки, который можно легко преобразовать обратно в массив $ _SESSION при выполнении session_start ().

2 голосов
/ 18 марта 2011

Сериализация одной переменной не имеет особого смысла. гораздо полезнее сериализовать массив или объект:

$array = array(
     0 => 'hello',
     1 => 'there',
     'how' => 'are',
     'you' => '?'
);

$txt = serialize($array);
echo($txt); //

производит

a:4:{i:0;s:5:"hello";i:1;s:5:"there";s:3:"how";s:3:"are";s:3:"you";s:1:"?";}

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

1 голос
/ 18 марта 2011

Функция сериализации в PHP преобразует структуру данных в хранимую строку. Сериализуйте данные (например, переменную, массив или объект) для хранения в базе данных или другом месте хранения. После несериализации вы можете повторно использовать эти данные после получения. Вот пример:

$data = array("key"=>"value");
$serialized = serialize($data);

// Shows the serialized string representing the array:
// string(28) "a:1:{s:3:"key";s:5:"value";}"
var_dump($serialized);

$unserialized = unserialize($serialized);

// Shows the original array named $data:
// array(1) { ["key"]=>  string(5) "value" } 
var_dump($unserialized);
1 голос
/ 18 марта 2011

Сериализация переменной означает «преобразование ее в строку». По сути, это способ преобразования переменной в форму, которую можно легко сохранить для дальнейшего использования.

Представьте себе такую ​​ситуацию: у вас есть массив, содержащий много информации. Вам нужно сохранить его в текстовом файле, чтобы быть готовым к следующему потреблению. По умолчанию преобразование массива в строку приводит к неожиданным результатам. Например, делая это:

file_put_contents('file.txt', array('foo', 'bar'));

помещает строку foobar в ваш текстовый файл. Вы не можете легко преобразовать это обратно в массив. serialize преобразует массив в это:

file_put_contents('file.txt', serialize(array('foo', 'bar')));
// a:2:{i:0;s:3:"foo";i:1;s:3:"bar";}

Это нелегко прочитать, но функция unserialize может очень легко преобразовать ее обратно в массив.

0 голосов
/ 18 марта 2011

Записывает переменную в форме, которая может быть передана и сохранена.Например, вы должны сериализовать переменную перед записью ее в файл, в базу данных или просто для сохранения ее в сеансе HTTP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...