empty

(PHP 4, PHP 5, PHP 7, PHP 8)

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

Описание

empty(mixed $var): bool

Языковая конструкция проверяет, считает ли PHP переменную пустой. PHP считает переменную пустой, если она не существует или значение переменной равно false. Языковая конструкция empty() не генерирует предупреждение, если переменная не существует.

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

var

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

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

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

Возвращает true, если переданная в параметр var переменная не существует, содержит пустое значение или равно нулю, то есть ложно, подробнее о приведении значений к логическим типам рассказано в параграфе преобразование в логический тип. В остальных случаях возвращает false.

Примеры

Пример #1 Простое сравнение языковых конструкций empty() и isset().

<?php
$var
= 0;

// Принимает значение true, потому что переменная $var содержит пустое значение
if (empty($var)) {
echo
'$var или 0, или пусто, или вообще не определена';
}

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

Пример #2 Конструкция 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 Mostel']));

?>

Результат выполнения приведённого примера:

bool(true)
bool(false)
bool(false)
bool(true)
bool(true)

Пример #3 Пример поведения конструкции empty() на многомерных массивах

<?php

$multidimensional
= [
'some' => [
'deep' => [
'nested' => 'value'
]
]
];

if (!empty(
$multidimensional['some']['some']['nested'])) {
$someVariable = $multidimensional['some']['deep']['nested'];
}

var_dump(empty($multidimensional['some-undefined-key']));
var_dump(empty($multidimensional['some']['deep']['unknown']));
var_dump(empty($multidimensional['some']['deep']['nested']));

?>

Результат выполнения приведённого примера:

bool(true)
bool(true)
bool(false)

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, её нельзя вызывать как функцию переменной или передавать как именованный аргумент.

Замечание:

При вызове языковой конструкции empty() на недоступных (необъявленных, защищённых или закрытых) свойствах объекта вызывается метод перегрузки — __isset(), если он определён.

Смотрите также

  • isset() - Определяет, объявили ли переменную и отличается ли её значение от null
  • __isset()
  • unset() - Удаляет переменную
  • array_key_exists() - Проверяет, существует ли в массиве заданный ключ или индекс
  • count() - Подсчитывает количество элементов в массиве или в объекте Countable
  • strlen() - Получает длину строки
  • Таблица сравнения типов