Команда isset в PHP

Пусть у нас есть следующая переменная:

<?php $test = null; ?>

Давайте напишем условие, выполняющее проверку на null:

<?php $test = null; if ($test === null) { echo '+'; } else { echo '-'; } ?>

Более удобно такую проверку можно выполнить с помощью специальной команды isset:

<?php $test = null; if (isset($test)) { echo '+'; } else { echo '-'; } ?>

Подавление ворнинга

Пусть переменная $test вообще не определена. Как вы уже знаете, значение такой переменной будет равно null. При этом попытка обратиться к этой переменной приведет к появлению ворнинга:

<?php var_dump($test); // выведет null и ворнинг ?>

Ворнинг также будет показан при попытке проверить переменную на null:

<?php if ($test === null) { echo '+'; } else { echo '-'; } ?>

А вот проверка через команду isset не приведет к появлению ворнинга - он будет автоматически подавлен:

<?php if (isset($test)) { echo $test; } else { echo 'variable does not exist'; } ?>

Инвертирование высказывания

Можно выполнить обратную проверку, на то, что переменная не определена. Для этого выполним инвертирование isset с помощью логического НЕ:

<?php $test = null; if (!isset($test)) { echo '+'; } else { echo '-'; } ?>

Элементы массивов

С помощью isset можно проверить существование элемента массива:

<?php $arr = ['a', 'b', 'c']; if (isset($arr['5'])) { echo $arr['5']; } else { echo 'element does not exist'; } ?>

Можно также проверить элемент несуществующего массива:

<?php if (isset($arr['5'])) { echo $arr['5']; } else { echo 'array or element does not exist'; } ?>

Практические задачи

Не запуская код, определите, что выведется на экран:

<?php $test = 0; if (isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php $test = null; if (!isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php $test = null; if (isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php if (!isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php $test = ''; if (isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php if (!isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php $test = false; if (isset($test)) { echo '+'; } else { echo '-'; } ?>

Не запуская код, определите, что выведется на экран:

<?php $arr = [1, 2, 3, 4, 5]; if (isset($arr[])) { echo '+'; } else { echo '-'; } ?>