(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(), якщо його оголошено.