- empty
- Parameters
- Return Values
- Examples
- Notes
- See Also
- How to check whether a String is empty in PHP
- Examples of empty strings:
- How to check if a string is empty in PHP
- 1. Using the empty() function
- Syntax
- Example 1
- Example 2
- 2. Using the strlen() function
- Syntax
- Example 1
- Example 2
- 3. Comparing it with an empty string
- Example 1
- Example 2
- Related Articles
- empty
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Смотрите также
- Как правильней проверить содержимое строки?
empty
Определите, считается ли переменная пустой. Переменная считается пустой, если она не существует или если ее значение равно false . empty () не генерирует предупреждение, если переменная не существует.
Parameters
Предупреждение не генерируется, если переменная не существует. Это означает, что empty () по сути является кратким эквивалентом ! Isset ($ var) || $ var == false .
Return Values
Возвращает true , если var не существует или имеет пустое или равное нулю значение, иначе falsey, см. преобразование в boolean . В противном случае возвращает false .
Examples
Пример №1 Простое сравнение empty () / isset () .
$var = 0; // Evaluates to true because $var is empty if (empty($var)) < echo '$var is either 0, empty, or not set at all'; > // Evaluates as true because $var is set if (isset($var)) < echo '$var is set even though it is empty'; > ?>
Пример # 2 empty () для смещений строк
$expected_array_got_string = 'somestring'; var_dump(empty($expected_array_got_string['some_key'])); var_dump(empty($expected_array_got_string[0])); var_dump(empty($expected_array_got_string['0'])); var_dump(empty($expected_array_got_string[0.5])); var_dump(empty($expected_array_got_string['0.5'])); var_dump(empty($expected_array_got_string['0 Mostel'])); ?>
Выводится приведенный выше пример:
bool(true) bool(false) bool(false) bool(false) bool(true) bool(true)
Notes
Примечание . Поскольку это языковая конструкция, а не функция, ее нельзя вызывать с помощью переменных функций или именованных аргументов .
Note:
При использовании empty () для недоступных свойств объекта будет вызван метод перегрузки __isset () , если он объявлен.
See Also
- isset () — определяет, объявлена ли переменная и отличается от нуля
- __isset()
- unset () — Сбросить заданную переменную
- array_key_exists () — Проверяет, существует ли данный ключ или индекс в массиве
- count () — подсчитывает все элементы в массиве или в объекте Countable
- strlen () — получает длину строки
- Типовые сравнительные таблицы
PHP 8.2
(PECL eio 0.0.1dev)eio_write to file eio_write()записывает до длины байта из строки со смещением в начало файла.
(PHP 5 5.3.0,7,8,PECL enchant 0.1.0)enchant_broker_describe Enumerates Enumerates Enumerates Enchant providers and tells you some rudimentary
How to check whether a String is empty in PHP
As a developer, you may get to a point where you are not sure if a string has a value or is empty. This can happen especially when the value of the string is dynamic and user-generated.
An empty string has a blank value in between the quotes (for quoted strings) or in between the opening and closing delimiter identifiers (for heredoc or nowdoc strings).
In this article, I will take you through the different methods of checking whether a string is empty or not.
Examples of empty strings:
How to check if a string is empty in PHP
1. Using the empty() function
This is the simplest and the most straightforward way. The empty() is an inbuilt PHP function that checks whether a variable is empty or not.
Syntax
The variable is a mandatory parameter that specifies which string variable to check.
The function returns FALSE if the variable exists and is not empty or TRUE if otherwise.
Example 1
Example 2
2. Using the strlen() function
The strlen() function returns the length of a string.
Syntax
The string is a mandatory parameter that specifies the string in which to check the length.
The function returns the length of a string (in bytes) on success, and 0 if the string is empty. Therefore, to determine if a string is empty or not, we just check its length and compare it with 0. If it is greater than 0 then the string is not empty. Else, we consider it empty.
Example 1
Example 2
3. Comparing it with an empty string
An empty string is equivalent to empty quotes, ie » or «» .
We just compare our string variable with empty quotes using the identical === operator. If the string is identical to the value of empty quotes, we conclude it’s empty. If else, then we know it is not empty.
Example 1
Example 2
That’s all for this article.
That is how you check if a string is empty or not in PHP.
Related Articles
- Creating and working with Strings in PHP
- How to make multi-line Strings in PHP
- How to convert a string into a number using PHP
- How to remove all spaces from a String in PHP
- How to remove special characters from a String in PHP
- How to do String to Array conversion in PHP
- How to do Array to String conversion in PHP
- How to check if a string contains a certain word/text in PHP
- How to replace occurrences of a word or phrase in PHP string
- Regex to remove an HTML tag and its content from PHP string
- Variables, arrays and objects interpolation in PHP strings
- How to insert a dash after every nth character in PHP string
- How to change case in PHP strings to upper, lower, sentence, etc
- Counting the number of characters or words in a PHP string
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() .
$expected_array_got_string = ‘somestring’ ;
var_dump (empty( $expected_array_got_string [ ‘some_key’ ]));
var_dump (empty( $expected_array_got_string [ 0 ]));
var_dump (empty( $expected_array_got_string [ ‘0’ ]));
var_dump (empty( $expected_array_got_string [ 0.5 ]));
var_dump (empty( $expected_array_got_string [ ‘0.5’ ]));
var_dump (empty( $expected_array_got_string [ ‘0 Mostel’ ]));
?>?php
Результат выполнения данного примера в PHP 5.3:
bool(false) bool(false) bool(false) bool(false) bool(false) bool(false)
Результат выполнения данного примера в PHP 5.4:
bool(true) bool(false) bool(false) bool(false) bool(true) bool(true)
Примечания
Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.
Замечание:
При использовании функции empty() на недоступных (необъявленных) свойствах объекта будет вызван встроенный метод объекта __isset(), если он определен.
Смотрите также
- isset() — Определяет, была ли установлена переменная значением отличным от NULL
- __isset()
- unset() — Удаляет переменную
- array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
- count() — Подсчитывает количество элементов массива или что-то в объекте
- strlen() — Возвращает длину строки
- Таблица сравнения типов
Как правильней проверить содержимое строки?
Тривиальная задача: если строка не пустая, вывести её через echo.
Первоначально переменная объявляется как $str = »;
Вопрос — как правильней проверять на пустоту? В смысле, чтобы PHP не совершал лишних движений.
(уверен, есть множество других)
ну если вы уверенны, что переменная объявлена так как вы написали, то можно проверить просто:
if ($str != »)
Посторонним В.: есть теоретически небольшой шанс, что strlen будет быстрее, чем сравнение. Но это нужно проверять экспериментом.
rework: А есть уверенность, что оператор != не использует вызов strlen для осуществления сравнения?
Но по поводу спичек согласен
rework: да, если судить по логике, вариант if ($str !== ») — наиболее логичный. Так как сработает и при необъявленной переменной, и вообще в любом случае отличном от простого объявления пустой строки. Спасибо.
rework: мне это и нужно. Чтобы в случае отклонения от условия либо выводилась строка, либо (если ошибку допустил я в коде, т. е. не то имя переменной вписал например) выводилась ошибка скрипта.
Сложность strlen($str) — O(1). А вот !== » это уже доп. операция приведения типов переменных.
Так что я бы поставил на strlen($str) > 0 .
Андрей Попов: сложность обеих операций одинаковая — нулевая. не надо тут выковыривать из носа теоретические изыскания о скорости микроскопических процессов, которых на обработку одного НТТР запроса уходит миллион
FanatPHP: действительно, лучше об архитектуре приложения задуматься, об оптимизации запросов, кэшировании, чем ерундой заниматься.
FanatPHP: я отвечал скорее rework «тем, что не высчитывается длинна строки.» Это не верно. Т.к. она НЕ высчитывается.
А про «не надо тут выковыривать из носа теоретические изыскания о скорости микроскопических процессов, которых на обработку одного НТТР запроса уходит миллион»
Как я вижу и понял, вопрос не практический а теоретический. На практике все, рано или поздно, приходят к шаблонизаторам, ORM, фрейморкам и прочим ускоряющим скорость разработки в ущерб производительности инструментам.
Вы же сами явно написали — «если строка не пустая«, может тогда стоит применить функцию именно для этого случая?
т.е. empty(); — из названия же ясно для чего предназначена эта функция
Наоборот !empty вернёт false, для несуществующих переменных. Просто в php зачастую переменные не объявляются заранее и надёжнее проверять именно через !empty, что бы не получить notice ошибку.
документация. я понимаю, что она невнятно написана, но в принципе, если читать внимательно, то логику уловить можно.
FanatPHP: «содержимое СТРОКИ» — если уклон делать именно на строку, то да, не самый лучший выбор, т.к. empty выдаст true для null и т.д.
если на пустоту — то тоже не лучший выбор. потому что тогда возникает вопрос, почему не if($var) Короче, аффтар выше уже все написал
верно. empty проверяет, пуста ли переменная И существует ли она. то есть, это короткая запись if (isset($var) && $var). в то время как проверка на пустоту — это просто if ($var)
Вообще, в данной постановке задача не имеет смысла.
Если строка пустая, то нет проблемы и вывести её — ничего от этого не изменится и не поломается.
Но если говорить не о выводе, а о проверке на «пустоту» (в терминах РНР), то
if ($str)
или
if (trim($str))
если мы не хотим обрабатывать строку, состоящую из пробельных символов.
Однако следует помнить, что ноль в РНР входит в понятие пустоты. поэтому, если мы хотим проверить равна ли переменная пустой строке, то именно эту проверку и надо делать,
if ($str !== »)
Отдельно хочу отметить заботу о совершающем лишние движения РНР. Людей, которые проявляют эту заботу, на нормальных ресурсах молча банят. Жаль что тостер — не нормальный ресурс.