empty

(PHP 4, PHP 5, PHP 7)

emptyПроверяет, пуста ли переменная

Описание

empty ( mixed $var ) : bool

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

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

var

Проверяемая переменная

Замечание:

До 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() (пустой массив)

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

Версия Описание
5.5.0

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

5.4.0

Проверка нечислового индекса строки возвращает 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() - Возвращает длину строки
  • Таблица сравнения типов