Базовый курс PHP — Переменные с типом null
Уроки курса 12 из 12
Содержание урока
Что такое null?
null — это специальный тип данных в PHP, который означает отсутствие значения.
Переменная имеет значение null в трёх случаях:
- Ей явно присвоено значение
null - Ей ещё не было присвоено никакое значение
- Она была удалена с помощью
unset()
Значение null записывается без кавычек и не чувствительно к регистру,
но принято писать строчными буквами: null.
<?php
// Явно присваиваем null
$value = null;
var_dump($value); // NULL
echo gettype($value); // NULL
NULL
NULL
var_dump() выводит тип и значение переменной.
Для null она покажет NULL.
Как проверить переменную на null?
Для проверки переменной на null используется функция is_null().
Она возвращает true, если значение равно null, и false в противном случае.
<?php
$empty = null;
$name = 'Алексей';
var_dump(is_null($empty)); // bool(true)
var_dump(is_null($name)); // bool(false)
bool(true)
bool(false)
Также можно использовать оператор строгого сравнения === для проверки на null.
<?php
$value = null;
$number = 42;
var_dump($value === null); // bool(true)
var_dump($number === null); // bool(false)
bool(true)
bool(false)
Как null ведёт себя при преобразовании типов?
При преобразовании null в другие типы данных он превращается в «пустое» значение:
В строку — пустая строка ''
В число — 0
В bool — false
<?php
$value = null;
// Преобразование null в строку
$str = (string) $value;
var_dump($str); // string(0) ""
// Преобразование null в число
$num = (int) $value;
var_dump($num); // int(0)
// Преобразование null в bool
$bool = (bool) $value;
var_dump($bool); // bool(false)
string(0) ""
int(0)
bool(false)
Как удалить значение переменной?
Конструкция unset() удаляет переменную.
После удаления переменная перестаёт существовать.
Проверить, существует ли переменная, можно функцией isset(): она возвращает true,
если переменная существует и не равна null, и false в остальных случаях.
<?php
$name = 'Мария';
echo $name . PHP_EOL; // Мария
// Удаляем переменную
unset($name);
// Теперь переменная $name не существует
var_dump(isset($name)); // bool(false)
Мария
bool(false)
Как gettype() работает с null?
Функция gettype() для значения null возвращает строку NULL.
<?php
$empty = null;
$text = 'Привет';
$number = 10;
echo gettype($empty) . PHP_EOL; // NULL
echo gettype($text) . PHP_EOL; // string
echo gettype($number); // integer
NULL
string
integer
Оператор ?? (null coalescing)
Оператор ?? (объединение с null) позволяет задать значение по умолчанию,
если переменная равна null или не существует.
<?php
$name = null;
$city = 'Москва';
// Если $name равен null, используем 'Гость'
$displayName = $name ?? 'Гость';
// Если $city равен null, используем 'Неизвестно'
$displayCity = $city ?? 'Неизвестно';
echo $displayName . PHP_EOL; // Гость
echo $displayCity; // Москва
Гость
Москва