Changeset 45636
- Timestamp:
- 07/15/2019 05:07:20 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/compat.php
r45611 r45636 450 450 } 451 451 452 if ( ! function_exists( 'array_replace_recursive' ) ) :453 /**454 * PHP-agnostic version of {@link array_replace_recursive()}.455 *456 * The array_replace_recursive() function is a PHP 5.3 function. WordPress457 * currently supports down to PHP 5.2, so this method is a workaround458 * for PHP 5.2.459 *460 * Note: array_replace_recursive() supports infinite arguments, but for our use-461 * case, we only need to support two arguments.462 *463 * Subject to removal once WordPress makes PHP 5.3.0 the minimum requirement.464 *465 * @since 4.5.3466 *467 * @see https://secure.php.net/manual/en/function.array-replace-recursive.php#109390468 *469 * @param array $base Array with keys needing to be replaced.470 * @param array $replacements Array with the replaced keys.471 *472 * @return array473 */474 function array_replace_recursive( $base = array(), $replacements = array() ) {475 foreach ( array_slice( func_get_args(), 1 ) as $replacements ) {476 $bref_stack = array( &$base );477 $head_stack = array( $replacements );478 479 do {480 end( $bref_stack );481 482 $bref = &$bref_stack[ key( $bref_stack ) ];483 $head = array_pop( $head_stack );484 485 unset( $bref_stack[ key( $bref_stack ) ] );486 487 foreach ( array_keys( $head ) as $key ) {488 if ( isset( $key, $bref ) &&489 isset( $bref[ $key ] ) && is_array( $bref[ $key ] ) &&490 isset( $head[ $key ] ) && is_array( $head[ $key ] ) ) {491 492 $bref_stack[] = &$bref[ $key ];493 $head_stack[] = $head[ $key ];494 } else {495 $bref[ $key ] = $head[ $key ];496 }497 }498 } while ( count( $head_stack ) );499 }500 501 return $base;502 }503 endif;504 505 452 /** 506 453 * Polyfill for the SPL autoloader. In PHP 5.2 (but not 5.3 and later), SPL can
Note: See TracChangeset
for help on using the changeset viewer.