插件错误“ARRAY_KEY_EXISTS():第一个参数应为字符串或整数”

时间:2018-04-24 作者:Demonix

检查查询监视器,它抛出这个错误,

array\\u key\\u exists():第一个参数应为字符串或整数

与此功能相关:

public function lsx_team_scporder_get_terms_orderby( $orderby, $args ) {
    if ( is_admin() )
        return $orderby;

    $tags = $this->get_lsx_team_scporder_options_tags();

    if ( ! isset( $args[\'taxonomy\'] ) )
        return $orderby;

    $taxonomy = $args[\'taxonomy\'];
    if ( is_array( $taxonomy ) && count( $taxonomy ) == 1 )
        $taxonomy = $taxonomy[0];
    if ( ! array_key_exists($taxonomy, $tags ) )
        return $orderby;

    $orderby = \'t.lsx_team_term_order\';
    return $orderby;
}
为什么要抛出那个错误?

1 个回复
最合适的回答,由SO网友:Cubakos 整理而成

php manual 这个array_key_exists() 函数将“数组索引可能的任何值”作为第一个参数,再次查找arrays 在文档中,我们可以得到“键可以是整数或字符串。值可以是任何类型。”,这也对应于您在查询监视器中看到的错误。

意味着$taxonomy 传递给array_key_exists() 不是字符串或整数。

您可以调试$taxonomy 变量,通过var_dump($taxonomy);.

希望,这会有所帮助。

结束