Лекция
Привет, Вы узнаете о том , что такое null в php, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое null в php, пустой тип в php, оператор безопасного null , nullsafe operator , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL.
Переменная считается NULL если
ей была присвоена константа NULL.
ей еще не было присвоено какое-либо значение.
она была удалена с помощью unset().
Синтаксис специального типа NULL
Существует только одно значение типа NULL - регистро-независимое ключевое слово NULL.
$var = NULL;
Применение
Переменная может быть явно установлена в NULL для освобождения памяти, используемой им. Это имеет смысл, если переменная потребляет много памяти
Кроме того Для различных типов, при использовании null сравнение выполняется в соответствии со следующей таблицей
Null — сам по себе не очень хорошая штука (даже очень плохая). Об этом говорит сайт https://intellect.icu . Когда функция возвращает null
, то в каждом месте, где идет ее вызов, программист обязан проверить на null
. И это приводит к ужасным последствиям.
$session = Session::find(123);
if ($session !== null) {
$user = $session->user;
if ($user !== null) {
$address = $user->getAddress();
if ($address !== null) {
$country = $address->country;
}
}
}
По хорошему, должен быть метод Session::findOrFail
, который будет кидать исключение в случае отсутствия результата. Но когда эти методы диктует фреймворк, то мы не можем ничего сделать. Единственное, это проверять каждый раз на null
либо, где это уместно, использовать ?->
.
$country = $session?->user?->getAddress()?->country;
Этот код более чистый, чем предыдущий. Но он не идеален. Для идеально чистого кода, нужно использовать шаблон Null Object, либо выбрасывать exception. Тогда нам не нужно будет держать в голове возможность null на каждом шагу.
Более правильный вариант:
$country = $session->user->getAddress()->country;
Интересным моментом в использовании nullsafe есть то, что при вызове метода с помощью ?->
, параметры будут обработаны только если объект не null
:
function expensive_function() {
var_dump('will not be executed');
}
$foo = null;
$foo?->bar(expensive_function()); // won't be called
В заключение, эта статья об null в php подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое null в php, пустой тип в php, оператор безопасного null , nullsafe operator и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Из статьи мы узнали кратко, но содержательно про null в php
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)