# array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

array_key_exists — 检查数组里是否有指定的键名或索引

### 说明

array_key_exists ( mixed `$key` , array `$array` ) : bool

数组里有键 `key` 时，array_key_exists() 返回 `TRUE`。 `key` 可以是任何能作为数组索引的值。

### 参数

`key`

  要检查的键。

`array`

  一个数组，包含待检查的键。

### 返回值

成功时返回 `TRUE`， 或者在失败时返回 `FALSE`。

> Note:

> array_key_exists() 仅仅搜索第一维的键。 多维数组里嵌套的键不会被搜索到。

### 范例

Example #1 array_key_exists() 例子

    <?php
    $search_array = array('first' => 1, 'second' => 4);
    if (array_key_exists('first', $search_array)) {
        echo "The 'first' element is in the array";
    }
    ?>

Example #2 array_key_exists() 与 isset() 的对比

isset() 对于数组中为 `NULL` 的值不会返回 `TRUE`，而 array_key_exists() 会。

    <?php
    $search_array = array('first' => null, 'second' => 4);

    // returns false
    isset($search_array['first']);

    // returns true
    array_key_exists('first', $search_array);
    ?>

### 注释

> Note:

> 由于为了兼容以前版本，如果 object 当做 `array` 传入 array_key_exists()，同时 `key` 是对象的属性，也会返回 `TRUE`。 不要依赖这个特性，保证参数 `array` 类型是数组（array）。

> 要检查对象是否有某个属性，应该去用 property_exists()。

### 参见

- isset() - 检测变量是否已设置并且非 NULL
- array_keys() - 返回数组中部分的或所有的键名
- in_array() - 检查数组中是否存在某个值
- property_exists() - 检查对象或类是否具有该属性