如何检查数组中的 $meta_key 在 运行 if 语句之前是否有值

How to check if $meta_key in array has a value before running an if-statement

我正在编写一些代码,将 post 从自定义字段到数据库的信息。

以下代码检查 $meta_key 是否存在:

// Apply filters to keys
$this->keys = apply_filters('sc_meta_keys', $this->keys);

// See if the current meta_key is in the array keys
if($this->in_array_recursive($meta_key, $this->keys)) {

if($action == "add") {
//information from array gets added to DB
} 

}else{
//Do something else
}

但是我不确定如何检查 meta_key 中是否有值,因为我不希望 if 语句为 运行 如果不存在任何值。

数组将始终有键,但并非每个 post 都必须填充自定义字段。

也许你应该这样做。这将检查 $metakey 是否存在。

// See if the current meta_key is in the array keys
if (isset( $meta_key )) && (is_array($meta_key) && ($this->in_array_recursive($meta_key, $this->keys))) {

您应该始终检查是否设置了变量并使用短路运算符来减少条件的处理时间。由于您没有包含设置位置的逻辑 $meta_key 我会检查它是否已设置。

$this->keys = apply_filters('sc_meta_keys', $this->keys);

// See if the current meta_key is in the array keys
if( isset( $meta_key ) && ! empty( $this->keys ) && $this->in_array_recursive( $meta_key, $this->keys ) ) {

    if($action == "add") {
        //information from array gets added to DB
    } 

    }
    else {
        //Do something else
}