Задать вопрос

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

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

Какой способ более правильный и почему?
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 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, проверять строгое равенство === с пустой строкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
18 дек. 2024, в 13:47
1800 руб./в час
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект