bool array_key_exists(mixed $key, array $array)
true/falseisset())$arr = ['id' => 1, 'name' => 'admin'];
if (array_key_exists('name', $arr)) {
echo '鍵名 name 存在'; // 輸出此行
} else {
echo '鍵名 name 不存在';
}
| 場景 | array_key_exists | isset |
|---|---|---|
| 鍵存在,值非 null | true | true |
| 鍵存在,值為 null | true | false |
| 鍵不存在 | false | false |
需檢查「鍵存在且值非 null」組合用法:
if (array_key_exists($key, $arr) && $arr[$key] !== null) { ... }
class User { public $name; }
$user = new User();
var_dump(array_key_exists('name', $user)); // true
var_dump(array_key_exists('age', $user)); // false
array_key_exists() 專門用於判斷鍵是否存在,不關心值。值為 null 時仍返回 true,這是與 isset() 最大的區別。對象屬性檢查同樣適用。需同時確保「鍵存在且值非 null」時組合使用。