(PHP 4, PHP 5, PHP 7, PHP 8)
empty — Перевіряє чи змінна є пустою
Визначає чи вважається змінна порожньою. Змінна вважається порожньою,
якщо її не ініціалізовано, або її значення еквівалентне до false
.
Функція empty() не генерує попередження, якщо змінна не
ініціалізована.
var
Змінна для перевірки
Зауваження:
В раніших версіях, за PHP 5.5, empty() підтримувала тільки змінні; будь-що інше спричиняло синтаксичну помилку. Іншими словами, ось такий код не працював: empty(trim($name)). Щоб уникнути помилки використовуйте trim($name) == false.
Не видає попередження, якщо змінна не ініціалізована. Тобто роботу empty() можна описати таким еквівалентним виразом !isset($var) || $var == false.
Повертає false
, якщо var
ініціалізовано та вона має
непусте та ненульове значення.
В противному разі повертає true
.
Значення наступних варіантів вважається пустим:
Версія | Опис |
---|---|
5.5.0 |
empty() тепер підтримує вирази, а не тільки змінні. |
5.4.0 |
При перевірці нечислових зміщень рядка, повертається |
Приклад #1 Порівняння роботи функцій empty() та isset().
<?php
$var = 0;
// Оцінюється як true, оскільки $var має значення 0,
// який empty() вважає пустим значенням
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['певний_ключ']));
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(), якщо його оголошено.