Как проверить, есть ли ключ в массиве
Короткий ответ
isset() возвращает true, если ключ есть и значение не null:
<?php
$user = ['name' => 'Anna'];
var_dump(isset($user['name']));
var_dump(isset($user['email']));Результат:
bool(true)
bool(false)Значение по умолчанию
Чаще нужно не проверить, а сразу получить значение. Оператор ?? делает это одной строкой:
<?php
$user = ['name' => 'Anna'];
echo $user['email'] ?? 'not set';Результат:
not setКлюч со значением null
isset() для него вернёт false. Точный ответ даёт array_key_exists():
<?php
$user = ['email' => null];
var_dump(isset($user['email']));
var_dump(array_key_exists('email', $user));Результат:
bool(false)
bool(true)Функции из этого ответа
- array_key_exists — Проверяет, есть ли в массиве ключ.
- isset — Проверяет, что переменная существует и не равна null.
- in_array — Проверяет, есть ли значение в массиве.