如果数组索引未定义


Undefined index if the array

我使用以下函数来获取存储在wordpress中的选项。

function get_settings( $option ) {
    $options = get_option( 'my_options', my_default_options() );
    return $options[ $option ];
}

在上面的函数my_default_options()返回一个具有默认值的数组。现在如果我像这样调用上面的函数:get_settings("title");如果"title"存在于默认选项数组中,它将正常工作。

但是,如果title不存在于默认选项数组中,那么我得到以下警告:

Notice: Undefined index:

如何修复此通知?我尝试如下:

function get_settings( $option ) {
    $defaults = my_default_options();
    if(in_array($option, $defaults)){
        $options = get_option( 'my_options', my_default_options() );
        return $options[ $option ];
    }
}

但是它仍然返回相同的通知

确认isset是否存在

function get_settings( $option ) {
    $defaults = my_default_options();
    if(in_array($option, $defaults)){
        $options = get_option( 'my_options', my_default_options() );
        return isset($options[ $option ]) ?  $options[ $option ] : '';
    }
}

使用array_key_exists函数。in_array查找值,array_key_exists查找键/索引:

function get_settings( $option ) {
    $options = get_option( 'my_options', my_default_options() );
    if(array_key_exists($option, $options))
        return $options[ $option ];
    return "unknown";
}