@iv4n0v007

В чём разница между empty() и !?

Какой способ предпочтительней использовать для проверки, пустая ли переменная:
if ( empty($foo) ) или if ( !$foo )

И аналогично, проверка не пустая ли переменная:
if ( !empty($foo) ) или просто if ( $foo )

Насколько я знаю, использование empty и просто ! перед переменной проверяют одно и то же (проверка на пустую строку/0/нул/фолс/пустой массив), т.е. результат один и тот же, но что на php 7.1 актуальнее использовать?
  • Вопрос задан
  • 119 просмотров
Решения вопроса 4
rework
@rework
Помог ответ? В благодарность отметь его решением
Вы не правы, они работаю по разному. Вот тут вы можете изучить таблицу как работают разные методы проверок empty, is_null, isset, boolean, if($x) - php.net/manual/ru/types.comparisons.php

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

из документации.

Если нужно проверить точно ли существует переменная и она не пуста можно использовать !empty()
Ответ написан
@Vitaliy_P
empty - проверяет переменную на пустоту, так же, вернет true если переменной не существует.

с помощью знака ! перед переменной, проверяется ее противоположное значение, приведенное в boolean тип. если переменной не существует, на сколько я предполагаю, это приведет к ошибке. обычно использую empty
Ответ написан
kotomyava
@kotomyava
Системный администратор
Разница есть: empty($value) сначала проверяет инициализирована-ли вообще переменная isset($value), а потом значение.
Если сделать if ( $foo ) и переменная не инициализирована, будет notice.

Т.е. не совсем это эквивалентные условия, а что актуально, в каком случае применять, это вам решать. =)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
от 2 000 до 4 000 usd.
HTML Academy Санкт-Петербург
от 130 000 до 140 000 руб.
Duotek Москва
До 120 000 руб.
15 авг. 2018, в 22:39
60000 руб./за проект
15 авг. 2018, в 22:01
6000 руб./за проект
15 авг. 2018, в 21:18
30000 руб./за проект