PHP注意:未定义的偏移量:2

时间:2015-10-28 00:05:18

标签: php wordpress gist

我使用此代码将Gists嵌入WordPress中。它工作正常,Gists出现,但我在debug.log文件中不断收到错误: PHP注意:未定义的偏移量:第333行/ functions.php中的2

(第333行是esc_attr($matches[2])

    wp_embed_register_handler( 'gist', '/https?:\/\/gist\.github\.com\/([a-z0-9]+)(\?file=.*)?/i', 'embed_handler_gist' );

function embed_handler_gist( $matches, $attr, $url, $rawattr ) {

    $embed = sprintf(
            '<script src="https://gist.github.com/%1$s.js%2$s"></script>',
            esc_attr($matches[1]),
            esc_attr($matches[2])
            );

    return apply_filters( 'embed_gist', $embed, $matches, $attr, $url, $rawattr );

}

2 个答案:

答案 0 :(得分:2)

该错误仅表示$matches[2]不存在。您可以在尝试访问变量之前检查其是否存在,以避免此错误。

if( isset($matches[2]) )
    esc_attr($matches[2]);

或者如果您要分配默认值:

$value = isset($matches[2]) ? $matches[2] : false;

isset()

答案 1 :(得分:1)

当我试图从mysql数据库中提取媒体列表时,我遇到了偏移问题。当我在数据库中只有一个条目时,它给了我一个偏移错误。检查是否返回了两个变量。如果你只得到一个,也许你可以使用sizeof($ array)或count($ array)编写错误检查。只是一个想法:)