WordPress.org

Make WordPress Core

Changeset 25240


Ignore:
Timestamp:
09/04/2013 07:06:13 PM (6 years ago)
Author:
wonderboymusic
Message:

Remove unnecessary checks before setting $wp_settings_* arrays. Adds unit test for setting a nonexistent variable to a multi-dimensional array.

Props scribu.
Fixes #17884.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/template.php

    r25117 r25240  
    10731073    }
    10741074
    1075     if ( !isset($wp_settings_sections) )
    1076         $wp_settings_sections = array();
    1077     if ( !isset($wp_settings_sections[$page]) )
    1078         $wp_settings_sections[$page] = array();
    1079     if ( !isset($wp_settings_sections[$page][$id]) )
    1080         $wp_settings_sections[$page][$id] = array();
    1081 
    10821075    $wp_settings_sections[$page][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback);
    10831076}
     
    11181111    }
    11191112
    1120     if ( !isset($wp_settings_fields) )
    1121         $wp_settings_fields = array();
    1122     if ( !isset($wp_settings_fields[$page]) )
    1123         $wp_settings_fields[$page] = array();
    1124     if ( !isset($wp_settings_fields[$page][$section]) )
    1125         $wp_settings_fields[$page][$section] = array();
    1126 
    11271113    $wp_settings_fields[$page][$section][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback, 'args' => $args);
    11281114}
     
    11441130    global $wp_settings_sections, $wp_settings_fields;
    11451131
    1146     if ( ! isset( $wp_settings_sections ) || !isset( $wp_settings_sections[$page] ) )
     1132    if ( ! isset( $wp_settings_sections[$page] ) )
    11471133        return;
    11481134
     
    11791165    global $wp_settings_fields;
    11801166
    1181     if ( !isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section]) )
     1167    if ( ! isset( $wp_settings_fields[$page][$section] ) )
    11821168        return;
    11831169
     
    12191205function add_settings_error( $setting, $code, $message, $type = 'error' ) {
    12201206    global $wp_settings_errors;
    1221 
    1222     if ( !isset($wp_settings_errors) )
    1223         $wp_settings_errors = array();
    12241207
    12251208    $new_error = array(
  • trunk/tests/phpunit/tests/basic.php

    r25002 r25240  
    8989        $this->assertEquals($expected, mask_input_value($in));
    9090    }
     91
     92    function test_setting_nonexistent_arrays() {
     93        $page = 1;
     94        $field = 'settings';
     95
     96        error_reporting( -1 );
     97
     98        $empty_array[$page][$field] = 'foo';
     99
     100        unset( $empty_array[$page]['bar']['baz'] );
     101    }
    91102}
Note: See TracChangeset for help on using the changeset viewer.