Code Modernisation: Remove the array_replace_recursive()
polyfill.
This function was added in PHP 5.3.0, so we no longer need the polyfill. Props jrf. See #47698. git-svn-id: https://develop.svn.wordpress.org/trunk@45636 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
6b3ccc2c64
commit
f3b826dd74
@ -449,59 +449,6 @@ if ( ! function_exists( 'sodium_crypto_box' ) ) {
|
||||
require ABSPATH . WPINC . '/sodium_compat/autoload.php';
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'array_replace_recursive' ) ) :
|
||||
/**
|
||||
* PHP-agnostic version of {@link array_replace_recursive()}.
|
||||
*
|
||||
* The array_replace_recursive() function is a PHP 5.3 function. WordPress
|
||||
* currently supports down to PHP 5.2, so this method is a workaround
|
||||
* for PHP 5.2.
|
||||
*
|
||||
* Note: array_replace_recursive() supports infinite arguments, but for our use-
|
||||
* case, we only need to support two arguments.
|
||||
*
|
||||
* Subject to removal once WordPress makes PHP 5.3.0 the minimum requirement.
|
||||
*
|
||||
* @since 4.5.3
|
||||
*
|
||||
* @see https://secure.php.net/manual/en/function.array-replace-recursive.php#109390
|
||||
*
|
||||
* @param array $base Array with keys needing to be replaced.
|
||||
* @param array $replacements Array with the replaced keys.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function array_replace_recursive( $base = array(), $replacements = array() ) {
|
||||
foreach ( array_slice( func_get_args(), 1 ) as $replacements ) {
|
||||
$bref_stack = array( &$base );
|
||||
$head_stack = array( $replacements );
|
||||
|
||||
do {
|
||||
end( $bref_stack );
|
||||
|
||||
$bref = &$bref_stack[ key( $bref_stack ) ];
|
||||
$head = array_pop( $head_stack );
|
||||
|
||||
unset( $bref_stack[ key( $bref_stack ) ] );
|
||||
|
||||
foreach ( array_keys( $head ) as $key ) {
|
||||
if ( isset( $key, $bref ) &&
|
||||
isset( $bref[ $key ] ) && is_array( $bref[ $key ] ) &&
|
||||
isset( $head[ $key ] ) && is_array( $head[ $key ] ) ) {
|
||||
|
||||
$bref_stack[] = &$bref[ $key ];
|
||||
$head_stack[] = $head[ $key ];
|
||||
} else {
|
||||
$bref[ $key ] = $head[ $key ];
|
||||
}
|
||||
}
|
||||
} while ( count( $head_stack ) );
|
||||
}
|
||||
|
||||
return $base;
|
||||
}
|
||||
endif;
|
||||
|
||||
/**
|
||||
* Polyfill for the SPL autoloader. In PHP 5.2 (but not 5.3 and later), SPL can
|
||||
* be disabled, and PHP 7.2 raises notices if the compiler finds an __autoload()
|
||||
|
Loading…
Reference in New Issue
Block a user