empty
(PHP 4, PHP 5, PHP 7)
empty — Проверяет, пуста ли переменная
Описание
Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно false
.
empty() не генерирует предупреждение, если переменная не существует.
Список параметров
-
var
-
Проверяемая переменная
Замечание:
До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.
Если переменная не существует, предупреждение не генерируется. Это значит, что empty() фактически является точным эквивалентом конструкции !isset($var) || $var == false
Возвращаемые значения
Возвращает false
, если var
существует и содержит непустое ненулевое значение
или строку false, смотрите Преобразование в булев тип.
В противном случае возвращает true
.
Примеры
Пример #1 Простое сравнение empty() и isset().
<?php
$var = 0;
// Принимает значение true, потому что $var пусто
if (empty($var)) {
echo '$var или 0, или пусто, или вообще не определена';
}
// Принимает значение true, потому что $var определена
if (isset($var)) {
echo '$var определена, даже если она пустая';
}
?>
Пример #2 empty() и строковые индексы
В PHP 5.4 был изменен способ обработки строковых индексов в empty().
<?php
$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 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() - Возвращает длину строки
- Таблица сравнения типов