警告:array_key_exists()期望参数2为数组,给定布尔值。 WordPress的

时间:2016-01-28 00:42:04

标签: php wordpress

我是php的新手,如果给出的密钥存在,我的代码有问题。错误代码如下,我不知道造成它的原因。请帮忙。

"警告:array_key_exists()期望参数2为数组,布尔值在"

中给出

该行

if ( is_array(array_key_exists('sizes',wp_get_attachment_metadata($attach_id)) == false ){}

2 个答案:

答案 0 :(得分:1)

正如ArSeN已经指出的那样,is_array(array_key_exists(并没有多大意义。我猜你在尝试:a)不是数组或b)缺少特定的密钥 使用临时变量可以执行类似

的操作
if ( !is_array($meta=wp_get_attachment_metadata($attach_id)) || !array_key_exists('sizes', $meta) ) {
    // ....
}

或者,如果您尝试更频繁地访问元数据(或仅仅作为编码风格):

$meta=wp_get_attachment_metadata($attach_id);
if ( !is_array($meta) || !array_key_exists('sizes', $meta) ) {
    // ....
}

答案 1 :(得分:0)

你可以放弃一个三元进入那个东西来解决它的问题。

if ( is_array(array_key_exists('sizes',wp_get_attachment_metadata($attach_id)) == false) ?: array() ){}

这样,如果附件元数据不存在,它将提供一个空数组,而数组又会从array_key_exists中产生一个false,这与所需代码的行为类似。