Make WordPress Core

Changeset 62550


Ignore:
Timestamp:
06/23/2026 01:53:35 PM (3 months ago)
Author:
SergeyBiryukov
Message:

Code Modernization: Use array_any() where appropriate.

This commit replaces several foreach loops that iterate an array, return true as soon as an element matches a condition, and otherwise fall through to false. That is exactly what PHP 8.4's array_any() expresses in a single, more readable call.

WordPress core includes a polyfill for array_any() on PHP < 8.4 as of WordPress 6.8, so the change works on every supported PHP version without raising the minimum requirement.

Follow-up to [59783].

Props Soean, mukesh27, SergeyBiryukov.
See #65519.

Location:
trunk/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/class-wp-site-health.php

    r62545 r62550  
    38353835                );
    38363836
    3837                 foreach ( $threshold_map as $threshold => $table ) {
    3838                         if ( $thresholds[ $threshold ] <= $results[ $table ]->rows ) {
    3839                                 return true;
    3840                         }
    3841                 }
    3842 
    3843                 return false;
     3837                return array_any( $threshold_map, fn( $table, $threshold ) => $thresholds[ $threshold ] <= $results[ $table ]->rows );
    38443838        }
    38453839
  • trunk/src/wp-admin/includes/post.php

    r62353 r62550  
    19811981
    19821982                // If the new autosave has the same content as the post, delete the autosave.
    1983                 $autosave_is_different = false;
    1984                 foreach ( array_intersect( array_keys( $new_autosave ), array_keys( _wp_post_revision_fields( $post ) ) ) as $field ) {
    1985                         if ( normalize_whitespace( $new_autosave[ $field ] ) !== normalize_whitespace( $post->$field ) ) {
    1986                                 $autosave_is_different = true;
    1987                                 break;
    1988                         }
    1989                 }
     1983                $fields                = array_intersect( array_keys( $new_autosave ), array_keys( _wp_post_revision_fields( $post ) ) );
     1984                $autosave_is_different = array_any( $fields, fn( $field ) => normalize_whitespace( $new_autosave[ $field ] ) !== normalize_whitespace( $post->$field ) );
    19901985
    19911986                if ( ! $autosave_is_different ) {
  • trunk/src/wp-includes/block-template-utils.php

    r61734 r62550  
    14621462        $directories_to_ignore = array( '.DS_Store', '.svn', '.git', '.hg', '.bzr', 'node_modules', 'vendor' );
    14631463
    1464         foreach ( $directories_to_ignore as $directory ) {
    1465                 if ( str_starts_with( $path, $directory ) ) {
    1466                         return true;
    1467                 }
    1468         }
    1469 
    1470         return false;
     1464        return array_any( $directories_to_ignore, fn( $directory ) => str_starts_with( $path, $directory ) );
    14711465}
    14721466
  • trunk/src/wp-includes/class-wp-block-processor.php

    r62461 r62550  
    15991599                }
    16001600
    1601                 foreach ( $block_type as $block ) {
    1602                         if ( $this->is_block_type( $block ) ) {
    1603                                 return true;
    1604                         }
    1605                 }
    1606 
    1607                 return false;
     1601                return array_any( $block_type, fn( $block ) => $this->is_block_type( $block ) );
    16081602        }
    16091603
  • trunk/src/wp-includes/class-wp-scripts.php

    r62368 r62550  
    851851                }
    852852
    853                 foreach ( (array) $this->default_dirs as $test ) {
    854                         if ( str_starts_with( $src, $test ) ) {
    855                                 return true;
    856                         }
    857                 }
    858                 return false;
     853                return array_any( (array) $this->default_dirs, fn( $test ) => str_starts_with( $src, $test ) );
    859854        }
    860855
  • trunk/src/wp-includes/class-wp-styles.php

    r61927 r62550  
    460460                }
    461461
    462                 foreach ( (array) $this->default_dirs as $test ) {
    463                         if ( str_starts_with( $src, $test ) ) {
    464                                 return true;
    465                         }
    466                 }
    467                 return false;
     462                return array_any( (array) $this->default_dirs, fn( $test ) => str_starts_with( $src, $test ) );
    468463        }
    469464
  • trunk/src/wp-includes/kses.php

    r62531 r62550  
    20572057        $scheme = strtolower( $scheme );
    20582058
    2059         $allowed = false;
    2060         foreach ( (array) $allowed_protocols as $one_protocol ) {
    2061                 if ( strtolower( $one_protocol ) === $scheme ) {
    2062                         $allowed = true;
    2063                         break;
    2064                 }
    2065         }
     2059        $allowed = array_any( (array) $allowed_protocols, fn( $protocol ) => strtolower( $protocol ) === $scheme );
    20662060
    20672061        if ( $allowed ) {
Note: See TracChangeset for help on using the changeset viewer.