Ответ
В PHP есть несколько ключевых операторов и функций для проверки переменных:
isset()— проверяет, была ли переменная объявлена и не равна лиnull. Возвращаетfalseдляnullи для необъявленных переменных, не вызывая при этом ошибки.empty()— проверяет, является ли значение переменной "пустым". Возвращаетtrueдляfalse,0,0.0,"","0",null, пустого массива[]и необъявленных переменных.is_null()— строго проверяет, равно ли значение переменнойnull. Вызов на необъявленной переменной вызовет предупреждение.array_key_exists()— проверяет наличие ключа в массиве, даже если его значение равноnull. В отличие отisset($array['key']), которая вернетfalseдля ключа со значениемnull.
Примеры и различия:
$var = null;
$arr = ['key' => null];
var_dump(isset($var)); // false (переменная равна null)
var_dump(isset($undefined)); // false (переменная не объявлена)
var_dump(empty($var)); // true
var_dump(is_null($var)); // true
var_dump(isset($arr['key'])); // false (значение null)
var_dump(array_key_exists('key', $arr)); // true (ключ существует)
Практический совет: Использую isset() для безопасной проверки наличия переменной (например, в $_GET или $_POST), empty() для проверки на "не заполнено", а array_key_exists() когда нужно отличить отсутствующий ключ от ключа со значением null.