maybe_unserialize() – функция структурирует данные, если они сериализованы

Противоположный эффект имеет функция maybe_serialize(), которая наоборот сериализует данные.

Небольшой прикол о том, как работает приставка maybe_ в функциях maybe_serialize() и maybe_unserialize(). По логике она должна означать «делаем действие, если необходимо», однако так она работает только во второй функции maybe_unserialize() – то есть действительно, если мы передадим в функцию сериализованную строку, то она её структурирует, если мы передадим в функцию например массив, то она ничего с ним делать не будет. Что касается функции maybe_serialize(), то неважно, передадим ли мы в неё массив или уже сериализованную строку, функция всё равно сериализует значение, почему так происходит, я уже рассказывал ранее.

maybe_unserialize() встречается в функциях для получения опций и мета-полей из базы данных, например get_option(), get_post_meta() и т.д.

maybe_unserialize( $data )

Параметры

$data
Данные, которые нужно обработать.

Примеры

Решил рассмотреть те же самые примеры, которые я рассматривал в функции maybe_serialize().

// Обычные несериализованные строки функция никак не обрабатывает
echo maybe_unserialize( 'Привет мир!' ); // Привет мир!
 
// Другие несериализованные данные, числа, логические, массивы, null, также никак обработаны не будут
echo maybe_unserialize( 21 ); // 21
var_dump( maybe_unserialize( false ) ); // false
print_r( maybe_unserialize( array( 'text' => 'Привет, мир!', 'image' => 'mountain.jpg' ) ) ); // Array ( [text] => Привет, мир! [image] => mountain.jpg )
 
// Сериализованная массив будет структурирован
print_r( maybe_unserialize( 'a:2:{s:4:"text";s:21:"Привет, мир!";s:5:"image";s:12:"mountain.jpg";}' ) )
// Array ( [text] => Привет, мир! [image] => mountain.jpg )
 
// Повторно сериализованная строка обработается один раз
echo maybe_unserialize( 's:78:"a:2:{s:4:"text";s:21:"Привет, мир!";s:5:"image";s:12:"mountain.jpg";}";' );
// a:2:{s:4:"text";s:21:"Привет, мир!";s:5:"image";s:12:"mountain.jpg";}

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.