Функция empty() в PHP
PHP содержит в своем наборе функции, проверяющее значения переменной или ее существование. Это функции isset() и empty(). Они возвращают значение true (истина)или false (ложь). Неправильное использование этих функций не приводит к фатальным ошибкам и даже часто встречается, однако является плохим тоном и говорит о неграмотности разработчика.
isset() определяет, существует ли переменная и отличается ли ее значение от null. Другими словами, она возвращает true только тогда, когда переменная существует и не равна null.
empty() проверяет значение переменной на пустоту. Другими словами, он вернет true, если переменная является пустой строкой, false, array (), NULL, ‘’, 0 и неустановленной переменной.
Функция empty() применяется когда необходимо выполнить некое действие при пустой переменной. Например, произвести расчет значения и записать его в переменную.Код ниже проверяет переменную squareна пустоту, и если возвращается true рассчитывает площадь и выведет значение, а если false – выведет значение записанное в переменной.
Параметры функции empty
Функция empty() принимает один параметр – переменную которую нужно проверить на пустоту. Она пишется в скобках. Кроме переменной это может быть элемент массива или строковый индекс.
В качестве примера приведен код проверит установлена ли элемент массива. В случае если он не установлен, он будет создан с указанным значением.
До проверки функцией empty массив будет выглядеть так:
После проверки empty() массив примет следующий вид:
Параметром функции может выступать также строковый индекс. К примеру, можно написать функцию, которая будет заменять элемент строки с индексом 4 на указанное значение, если в строке отсутствует элемент с индексом 15.
Использовать отрицание функции empty, как и функции isset() считается плохим тоном. Если необходимо удостоверится что в переменной есть значение или саму переменную на существование необходимо использовать функцию isset(). Если же наоборот необходимо проверить переменную на отсутствие значения или на ее отсутствие, то необходимо использовать функцию empty.
Ниже приведен пример неправильного и правильного использования функции empty:
Неправильно: инверсия возвращаемого функцией результата
Как стоило сделать: вернуть ошибку если empty() возвращает true, в противном случае обработать запрос: