It's deprecated in PHP 7.2, may as well replace it now.
I note that, contrary to claims at
https://wiki.php.net/rfc/deprecations_php_7_2#each, none of our uses
were trivially replaceable with foreach.
* wfArrayDiff2_cmp() is processing two arrays by value in parallel.
* MagicWordArray::parseMatch() is doing something funky with the data
structure returned by preg_match().
* HashRing was using it like "nextKey()", replaced with calls to key()
and next().
* FormatMetadata and IndexPager were both using it as a shorter way to
get both key() and current() for the first element in the array. I
suppose a foreach(){ break; } would do the same, but that's confusing.
Bug: T174354
Change-Id: I36169a04c764fdf1bfd6603395111c6fe0aae5eb
} else {
reset( $a );
reset( $b );
- while ( ( list( , $valueA ) = each( $a ) ) && ( list( , $valueB ) = each( $b ) ) ) {
+ while ( key( $a ) !== null && key( $b ) !== null ) {
+ $valueA = current( $a );
+ $valueB = current( $b );
$cmp = strcmp( $valueA, $valueB );
if ( $cmp !== 0 ) {
return $cmp;
}
+ next( $a );
+ next( $b );
}
return 0;
}
*/
public function parseMatch( $m ) {
reset( $m );
- while ( list( $key, $value ) = each( $m ) ) {
+ while ( ( $key = key( $m ) ) !== null ) {
+ $value = current( $m );
+ next( $m );
if ( $key === 0 || $value === '' ) {
continue;
}
// If more locations are requested, wrap-around and keep adding them
reset( $this->ring );
while ( count( $locations ) < $limit ) {
- list( $location, ) = each( $this->ring );
+ $location = key( $this->ring );
if ( $location === $primaryLocation ) {
break; // don't go in circles
}
$locations[] = $location;
+ next( $this->ring );
}
return $locations;
}
return $newValue;
} else { // _type is 'ul' or 'ol' or missing in which case it defaults to 'ul'
- list( $k, $v ) = each( $value );
- if ( $k === '_type' ) {
- $v = current( $value );
+ $v = reset( $value );
+ if ( key( $value ) === '_type' ) {
+ $v = next( $value );
}
return $v;
}
: [];
} elseif ( is_array( $index ) ) {
# First element is the default
- reset( $index );
- list( $this->mOrderType, $this->mIndexField ) = each( $index );
+ $this->mIndexField = reset( $index );
+ $this->mOrderType = key( $index );
$this->mExtraSortFields = isset( $extraSort[$this->mOrderType] )
? (array)$extraSort[$this->mOrderType]
: [];