Make WordPress Core

Changeset 25240


Ignore:
Timestamp:
09/04/2013 07:06:13 PM (13 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.