REST_STABILIZE_VALUE() – как использовать функцию для стабилизации значений в WordPress

REST_STABILIZE_VALUE() │ WP 5.5.0

Функция REST_STABILIZE_VALUE() используется для стабилизации значения в соответствии с семантикой JSON Schema. Это полезный инструмент, который помогает упорядочить данные перед их отправкой или обработкой.

Как работает?

  • Для списков: порядок элементов сохраняется.
  • Для объектов: свойства переупорядочиваются в алфавитном порядке.

Важно: Функция не поддерживает хуки.

Возвращаемое значение

Функция возвращает стабилизированное (упорядоченное) значение.

Как использовать?

rest_stabilize_value( $value );

Параметры

  • $value (mixed) — обязательный параметр. Это значение, которое нужно стабилизировать. Оно должно быть предварительно очищено (санитизировано). Если это объект, его необходимо превратить в массив.

Примеры

Пример 1

$fruits = [
    'd' => 'lemon',
    'a' => 'orange',
    'b' => 'banana',
    'c' => 'apple',
];

rest_stabilize_value( $fruits );

Результат:

Array (
    [a] => orange
    [b] => banana
     => apple
    [d] => lemon
)

Пример 2

$list = [
    'fruits'     => [
        'lemon' => [
            5 => 'yellow',
            3 => 'sour',
        ],
        'apple' => [
            'yellow',
            'red',
            'green',
        ],
    ],
    'vegetables' => [
        'potato' => [
            'ripe' => true,
            'gmos' => false,
        ],
    ],
];

rest_stabilize_value( $list );

Результат:

Array (
    [fruits] => Array (
        [apple] => Array (
            [0] => yellow
            [1] => red
            [2] => green
        )
        [lemon] => Array (
            [3] => sour
            [5] => yellow
        )
    )
    [vegetables] => Array (
        [potato] => Array (
            [gmos] => false
            [ripe] => true
         )
    )
)

Сравнение двух массивов

$array1 = [
    'one' => 'one',
    'two' => 'two',
    'three' => 'three',
];

$array2 = [
    'two' => 'two',
    'one' => 'one',
    'three' => 'three',
];

var_dump( $array1 === $array2 ); // false

var_dump( rest_stabilize_value( $array1 ) === rest_stabilize_value( $array2 ) ); // true

Как это работает: код функции

Вот как выглядит внутренняя часть функции rest_stabilize_value():


function rest_stabilize_value( $value ) {
if ( is_scalar( $value ) || is_null( $value ) ) {
return $value;
}

if ( is_object( $value ) ) {
    _doing_it_wrong( __FUNCTION__, __( 'Невозможно стабилизировать объекты. Сначала преобразуйте объект в массив.' ), '5.5.0' );

    return $value;
}

ksort( $value );

foreach ( $value as $k => $v ) {
    $value[ $k ] = rest_stabilize_value( $v );
}

return $value;

}

Заключение

Функция REST_STABILIZE_VALUE() упрощает работу с данными, позволяя приводить их в единый формат. Если вы будете следовать приведённым примерам, это поможет вам лучше организовать свои данные в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *