пятница, 23 ноября 2018 г.

Проверка isset() && !empty()

Очень часто в коде разработчиков встречается конструкция вида:

if (isset($var) && !empty($var)) {}

Аргументация людей, пишущих такой код, заключается в следующем:
empty выведет warning если переменная $var не была определена ранее.
Теперь откроем официальный мануал по empty и прочтем:
empty() does not generate a warning if the variable does not exist.
В русском варианте:
empty() не генерирует предупреждение, если переменная не существует.
Что это значит? Это значит, что все коды вида:

if (isset($var) && !empty($var)) {}

можно взять и заменить на:

if (!empty($var)) {}

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

На этом тему можно закрывать.