如果数组未定义索引

时间:2014-08-18 08:26:22

标签: php wordpress

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

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

在上面的函数中,my_default_options()返回一个具有默认值的数组。现在如果我调用上面的函数: get_settings("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 ];
    }
}

但它仍会返回相同的通知。

2 个答案:

答案 0 :(得分:1)

使用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 ] : '';
    }
}

答案 1 :(得分:1)

使用函数array_key_existsin_arrayarray_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";
}