WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

maybe_unserialize() WP 2.0.0

Десериализует переданное значение, если оно сериализовано или просто возвращает переданное значение.

Функция проверяет переданное значение сериализовано ли оно (php функция serialize()), если - да, то к нему будет применена функция unserialize(), если - нет, то функция просто вернет начальное значение.

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

Работает на раннем этапе загрузки WordPress, еще до константы SHORTINIT.

✈ 1 раз = 0.000047с = очень быстро | 50000 раз = 1.21с = быстро PHP 7.1.2, WP 4.7.4

Хуков нет.

Возвращает

Смешанный тип: десериализованные данные, могут быть любого типа.

Использование

maybe_unserialize( $original );
$original(строка) (обязательный)
Начальные данные, которые нужно проверить и если нужно десериализовать.

Примеры

#1 Демонстрация работы

В WordPress функция maybe_unserialize() применяется во многих местах и чаще всего нет необходимости заботиться о том, какие данные мы размещаем или получаем из БД. Допустим при сохранении массива в произвольное поле записи с помощью update_post_meta(), данные автоматически сериализуются при сохранении и десереализуются при получении (get_post_meta()). Тоже самое происходить при сохранении и получении опций (add_option(), get_option()).

Однако, в некоторых случаях при ризработке плагинов или тем, такую проверку нужно делать вручную и тут вам поможет функция maybe_unserialize() и её аналог maybe_serialize().

Допустим, мы сохранили в БД данные, которые являются структурированными данными: массивом/объектом. При получении этих данных они нужны в структурированном виде. Для этого получим данные и "прогоним" их через функцию maybe_unserialize():

// $value - данные в виде сериализованой строкой
$value = maybe_unserialize( $value );
// $value - данные которые стали массивом/объектом
// теперь мы можем получать значение - $value->foo

Код maybe unserialize: wp-includes/functions.php WP 4.8.1

<?php
function maybe_unserialize( $original ) {
	if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in
		return @unserialize( $original );
	return $original;
}

Cвязанные функции

Из метки: serialize (сериализация)

Еще из раздела: Вспомогательные

Http://gidroisol.ru/

http://gidroisol.ru/ гидроизол самые низкие цены.

gidroisol.ru

maybe_unserialize Комментариев нет

Здравствуйте, !

Ваш комментарий