Пример Empty (PHP) - почему и как?

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



Для чего нужна конструкция empty в языке PHP? Empty() используется для проверки элементов на существования значения в переменной, при этом на проверка на значение отличное от null, 0, '' и тд. При этом выполняется проверка и на существование самой переменной, элемента, объекта. И самая частая ошибка при ее использовании это использование ее вместе с конструкцией isset:


if(isset($element['name']) AND !empty($element['name']))


В итоге получается, что Вы выполняете лишнюю проверку, так как проверка на empty включает себе проверку и на isset.

Еще один важный момент и наверное самый важный, заключается он в том, что использовать данную конструкцию необходимо в случае проверки вложенных элементов (массив или объект), когда возможна генерация ошибки в случае его отсутствия (к примеру E_NOTICE).

Постараюсь объяснить на примере:


if(!empty($name))


и


if($name)


Эти примеры эквивалентны и использовать первый вариант нужно только в том случае если уровень ваших ошибок настроен таким образом, что без объявления переменной так же генерируется ошибка.


Конструкция empty по своему подавляет ошибки (E_NOTICE), при этом генерация ошибок не выполняется, что положительно сказывается на производительности скрипта.


Правильное использование:


if(!empty($element['name']))


Неправильная проверка


if($element['name'])


Почему второй вариант не правильный? Потому что в случае не существования элемента массива name, будет сгенерирована ошибка E_NOTICE, ВНИМАНИЕ даже если вывод ошибок отключен. Поэтому правильно и использовать первый вариант.


На последок хочу обратить Ваше внимание на то, что в версии PHP 5.4 немного изменено привычное поведение конструкции, советую почитать официальную документацию.


Скачать пример PHP EMPTY

Случайные статьи

Alien Breed: Evolution должна появится на PC и PlayStation 3, кроме того студия уже работает над второй частью Alien Breed 2: Assault. ...

Статья Aston Martin и другие спорткары за 5 евро добавлена с разрешения редакции сайта Игромания.Автор: Роман Епишин. Студия Turn 10 выпустила очередное загружаемое дополнение для ...

Статья CyberSnipa Silencer – новая игровая мышка добавлена с разрешения редакции сайта Игромания.Автор: Павел Шубский. На российский рынок выходит игровая проводная мышка CyberSnip...

Статья Lost Planet 2 пришлось урезать добавлена с разрешения редакции сайта Игромания.Автор: Андрей Чаплюк. Разработчикам пришлось существенно урезать содержимое экшена Lost Planet...

FIFA STREET - это новый футбол, новый FIFA. Данная игра по настоящему может оживить данный жанр, ведь из года в года, футбольных симуляторах меняется в основном только графика....