Специальное значение Null в PHP. Как проверить определена ли переменная?

специальное значение null в php. как проверить
  определена ли переменная?

Осмысление состояния неопределенности

Мы знаем, что PHP реализует ряд типов данных. Эти данные можно помещать в переменные или массивы. Так же мы изучали, что существует логический тип, характеризующий два состояния «правда» или «ложь». Возникает вопрос, а может ли переменная вообще не содержать значений и что будет, если мы вызовем ранее не заданную переменную?

Для описания такого неопределенного состояния в PHP существует специальное значение null. Оно может возникнуть в ряде случаев, которые на практике бывают тяжелыми для понимания.

Состояние неопределенности возникает, если:

  • Вы намеренно присвоили переменной значение null.
  • Переменная не определялась, и ей не было присвоено значение.
  • Если переменная была удалена вызовом функции unset().
//Намеренное присвоение значения переменной
$emptyVariable = null;
var_dump($emptyVariable); //Результат: NULL

//Значение неопределенной переменной
var_dump($someUndefined); //Результат: NULL

//Получение значения удаленной переменной
$varToDelete = "Переменная для удаления";
unset($varToDelete);
var_dump($varToDelete); //Результат: NULL

Осуществление проверки на null

В PHP есть ряд встроенных функций, которые помогают реализовать проверки на неопределенное состояние. Манипуляция этими функциями поможет точно определить причину его возникновения.

Описание функций проверки:

  • isset() - проверяет, определена ли переменная и отлична ли она от null. Если переменная не задавалась или имеет неопределенное значение, то функция вернет false, во всех других случаях true.
//Проверка объявленной не пустой переменной
$userName = "Agregortis";
$checkResult = isset($userName);
var_dump($checkResult); //Результат: bool(true)

//Проверка не объявленной и удаленной переменной
$fruit = "Апельсин";
unset($fruit);
$fruitCheck = isset($fruit);
$costCheck = isset($cost);
var_dump($fruitCheck); //Результат: bool(false)
var_dump($costCheck); //Результат: bool(false)
  • is_null() - данная функция реализует логику, противоположенную isset(). Если переменная не задавалась или имеет специальное значение null, то она вернет true, во всех других случаях false.
//Проверка объявленной не пустой переменной
$weapon = "TeslaCanon";
$weaponCheck = is_null($weapon);
var_dump($weaponCheck); //Результат: bool(false)

//Проверка не объявленной и удаленной переменной
$color = "Зеленый";
unset($color);
$colorCheck = is_null($color);
$popularCheck = is_null($popular);
var_dump($colorCheck); //Результат: bool(true)
var_dump($popularCheck); //Результат: bool(true)

Явное преобразование к null

Сложно представить себе ситуацию, когда необходимо привести значение какой-либо переменной или результата целого выражения к null, но, тем не менее, в PHP есть встроенный механизм. Для осуществления такой операции вам нужно использовать конструкцию (unset). При её подстановке перед использованием переменной или результатом выражения возвращается значение null.

Важно
Использование данной конструкции не удаляет значение переменной. Она только подменяет значение переменной на состояние неопределенности, в момент использования.

//Явное преобразование значения переменной
$event = "Покупка машины";
var_dump((unset)$event); //Результат: NULL
echo $event; //Результат: Покупка машины

Последние публикации