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.