我是php的新手,如果给出的密钥存在,我的代码有问题。错误代码如下,我不知道造成它的原因。请帮忙。
"警告:array_key_exists()期望参数2为数组,布尔值在"
中给出该行
if ( is_array(array_key_exists('sizes',wp_get_attachment_metadata($attach_id)) == false ){}
答案 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,这与所需代码的行为类似。