public static function compact( array $wraps ) {
		$consolidated = [];
		if ( $wraps === [] ) {
			// Return early so that we don't have to deal with $prev being
			// set or not set, and avoid risk of adding $prev's initial null
			// value to the list as extra value (T196496).
			return $consolidated;
		}
		$first = true;
		$prev = null;
		foreach ( $wraps as $wrap ) {
			if ( $first ) {
				$first = false;
				$prev = $wrap;
				continue;
			}
			if ( $prev instanceof WrappedString
				&& $wrap instanceof WrappedString
				&& $prev->prefix !== null
				&& $prev->prefix === $wrap->prefix
				&& $prev->suffix !== null
				&& $prev->suffix === $wrap->suffix
			) {
				$prev = $prev->extend( $wrap->value );
			} else {
				$consolidated[] = $prev;
				$prev = $wrap;
			}
		}
		// Add last one
		$consolidated[] = $prev;

		return $consolidated;
	}
public static function compact( array $wraps ) {
		$consolidated = [];
		if ( $wraps === [] ) {
			// Return early so that we don't have to deal with $prev being
			// set or not set, and avoid risk of adding $prev's initial null
			// value to the list as extra value (T196496).
			return $consolidated;
		}
		$first = true;
		$prev = null;
		foreach ( $wraps as $wrap ) {
			if ( $first ) {
				$first = false;
				$prev = $wrap;
				continue;
			}
			if ( $prev instanceof WrappedString
				&& $wrap instanceof WrappedString
				&& $prev->prefix !== null
				&& $prev->prefix === $wrap->prefix
				&& $prev->suffix !== null
				&& $prev->suffix === $wrap->suffix
			) {
				$prev = $prev->extend( $wrap->value );
			} else {
				$consolidated[] = $prev;
				$prev = $wrap;
			}
		}
		// Add last one
		$consolidated[] = $prev;

		return $consolidated;
	}
public static function compact ( array $ wraps ) { $ consolidated = [ ] ; if ( $ wraps === [ ] ) { // Return early so that we don't have to deal with $prev being // set or not set, and avoid risk of adding $prev's initial null // value to the list as extra value (T196496). return $ consolidated ; } $ first = true ; $ prev = null ; foreach ( $ wraps as $ wrap ) { if ( $ first ) { $ first = false ; $ prev = $ wrap ; continue ; } if ( $ prev instanceof WrappedString && $ wrap instanceof WrappedString && $ prev -> prefix !== null && $ prev -> prefix === $ wrap -> prefix && $ prev -> suffix !== null && $ prev -> suffix === $ wrap -> suffix ) { $ prev = $ prev -> extend ( $ wrap -> value ) ; } else { $ consolidated [ ] = $ prev ; $ prev = $ wrap ; } } // Add last one $ consolidated [ ] = $ prev ; return $ consolidated ; }
Merge consecutive WrappedString objects with the same prefix and suffix.

Does not modify the array or the WrappedString objects.

NOTE: This is an internal method. Use join() or WrappedStringList instead.

@param array $wraps
@return string[] Compacted list to be treated as strings
(may contain WrappedString and WrappedStringList objects)
Merge consecutive WrappedString objects with the same prefix and suffix .