Как проверить пустая ли строка php
Перейти к содержимому

Как проверить пустая ли строка php

  • автор:

Check if a string is empty in PHP

This article demonstrates how to check if a string is empty in PHP.

1. Using identity operator

The equality operator ( $a == $b ) returns true if $a is equal to $b after type conversion. When a variable is compared against an empty string using the equality operator ( == ), it returns true when the variable is either empty, false, null, or not set.

You might want to check the type along with the value while comparing a variable against an empty string. This can be done using the equality comparison operators ( == and != ), where type juggling doesn’t happen. The identity comparison $a === $b returns true if $a is equal to $b and they are of the same type.

2. Using strlen() function

Alternatively, you can use the strlen() function to check for empty strings in PHP, which returns the string’s length. However, it returns length 0 not only for empty strings, but for false, null, and unset variables as well. Therefore, you should always check the variable’s type before invoking this function. This can be done using the is_string() function, which returns true if and only if the specified value is of type string.

What is the PHP syntax to check "is not null" or an empty string? [duplicate]

Somewhere above this statement I use the following line in my JavaScript to set the username as a variable both in my JavaScript and in my PHP:

What I want to do is add a condition to make sure $user is not null or an empty string (it doesn’t have to be any particular value, I just don’t want it to be empty. What is the proper way to do this?

I know this is a sill question but I have no experience with PHP. Please advise, Thank you!

empty

Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно FALSE . empty() не генерирует предупреждение если переменная не существует.

Список параметров

Замечание:

До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.

Если переменная не существует, предупреждение не генерируется. Это значит, что empty() фактически является точным эквивалентом конструкции !isset($var) || $var == false

Возвращаемые значения

Возвращает FALSE , если var существует, и содержит непустое и ненулевое значение. В противном случае возвращает TRUE .

  • "" (пустая строка)
  • 0 (целое число)
  • 0.0 (дробное число)
  • "0" (строка)
  • NULL
  • FALSE
  • array() (пустой массив)
  • $var; (переменная объявлена, но не имеет значения)

Список изменений

empty() теперь поддерживает выражения, а не только переменные.

Проверка нечислового индекса строки возвращает TRUE .

Примеры

Пример #1 Простое сравнение empty() и isset() .

// Принимает значение true, потому что $var пусто
if (empty( $var )) <
echo ‘$var или 0, или пусто, или вообще не определена’ ;
>

// Принимает значение true, потому что $var определена
if (isset( $var )) <
echo ‘$var определена, даже если она пустая’ ;
>
?>

Пример #2 empty() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в empty() .

Как правильней проверить содержимое строки?

Тривиальная задача: если строка не пустая, вывести её через echo.

Первоначально переменная объявляется как $str = »;

Вопрос — как правильней проверять на пустоту? В смысле, чтобы PHP не совершал лишних движений.

if (strlen($str) > 0)

(уверен, есть множество других)

  • Вопрос задан более трёх лет назад
  • 7254 просмотра
  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter

Audiophile

ну если вы уверенны, что переменная объявлена так как вы написали, то можно проверить просто:
if ($str != ») <

Audiophile

Audiophile

FanatPHP

Audiophile

Сложность strlen($str) — O(1). А вот !== » это уже доп. операция приведения типов переменных.

Так что я бы поставил на strlen($str) > 0 .

FanatPHP

FanatPHP: я отвечал скорее rework «тем, что не высчитывается длинна строки.» Это не верно. Т.к. она НЕ высчитывается.

А про «не надо тут выковыривать из носа теоретические изыскания о скорости микроскопических процессов, которых на обработку одного НТТР запроса уходит миллион»

Как я вижу и понял, вопрос не практический а теоретический. На практике все, рано или поздно, приходят к шаблонизаторам, ORM, фрейморкам и прочим ускоряющим скорость разработки в ущерб производительности инструментам.

  • Facebook
  • Вконтакте
  • Twitter

Audiophile

FanatPHP

FanatPHP

FanatPHP

FanatPHP

FanatPHP

FanatPHP

Вообще, в данной постановке задача не имеет смысла.
Если строка пустая, то нет проблемы и вывести её — ничего от этого не изменится и не поломается.

Но если говорить не о выводе, а о проверке на «пустоту» (в терминах РНР), то
if ($str)
или
if (trim($str))
если мы не хотим обрабатывать строку, состоящую из пробельных символов.

Однако следует помнить, что ноль в РНР входит в понятие пустоты. поэтому, если мы хотим проверить равна ли переменная пустой строке, то именно эту проверку и надо делать,
if ($str !== »)

Отдельно хочу отметить заботу о совершающем лишние движения РНР. Людей, которые проявляют эту заботу, на нормальных ресурсах молча банят. Жаль что тостер — не нормальный ресурс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *