Как лучше проверять строку на пустоту в php?

if( !$str )
if( empty($str) )
if( $str == "" )
if( $str === "" )
if( strlen($str) == 0 )

Какой способ более правильный и почему?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
if ($str === '')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега PHP
♬♬
Недостатки исходных вариантов проверки:
$str = "0";  // непустая строка, содержащая цифру ноль
if (!$str) echo "bool false\n"; // сработает
if (empty($str)) echo "is empty\n"; // сработает

$str = null; // не строка
if ($str == "") echo "equals empty str\n"; // сработает
if (strlen($str) === 0) echo "zero length str\n"; // сработает


Поэтому лучший вариант, как и предложил Rsa97, проверять строгое равенство === с пустой строкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
28 апр. 2024, в 00:54
10000 руб./за проект
28 апр. 2024, в 00:53
70000 руб./за проект
27 апр. 2024, в 21:24
150000 руб./за проект