Какие операторы в PHP используются для проверки существования переменной?

«Какие операторы в PHP используются для проверки существования переменной?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В 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.