Automattic\WooCommerce\Admin\RemoteSpecs\RuleProcessors
EvaluateOverrides::set_value_with_dot_notation
Set a new value to $data with dot notation.
This is a slightly modified version of the simple dot notation to support objects.
Метод класса: EvaluateOverrides{}
Хуков нет.
Возвращает
Разное|\stdClass.
Использование
$EvaluateOverrides = new EvaluateOverrides(); $EvaluateOverrides->set_value_with_dot_notation( $data, $path, $new_value );
- $data(разное) (обязательный) (передается по ссылке — &)
- The data to update.
- $path(строка) (обязательный)
- The path to the value to update.
- $new_value(разное) (обязательный)
- The new value.
Код EvaluateOverrides::set_value_with_dot_notation() EvaluateOverrides::set value with dot notation WC 11.0.0
public function set_value_with_dot_notation( &$data, $path, $new_value ) {
$keys = explode( '.', $path );
$last_key = array_pop( $keys );
foreach ( $keys as $key ) {
if ( is_numeric( $key ) ) {
$key = (int) $key;
if ( ! isset( $data[ $key ] ) || ! is_object( $data[ $key ] ) ) {
$data[ $key ] = new \stdClass();
}
$data = &$data[ $key ];
} else {
if ( ! isset( $data->$key ) || ( ! is_array( $data->$key ) && ! is_object( $data->$key ) ) ) {
$data->$key = new \stdClass();
}
$data = &$data->$key;
}
}
// Assign the new value.
if ( is_numeric( $last_key ) ) {
$data[ (int) $last_key ] = $new_value;
} else {
$data->$last_key = $new_value;
}
return $data;
}