Меню Закрыть

Проверка переменной на пустоту php

Содержание

Часто возникают ситуации, когда нужно проверить существование или пустоту переменной. В PHP для этого есть функции isset() , empty() и array_key_exists() .

Проверка существования переменной

Функция isset() возвращает true , если переменная существует и её значение не null :

Если передать в isset() несколько переменных, она вернёт true при существовании всех переменных:

Результат в браузере: В PHP 7 появился Null-коалесцентный оператор ?? . Он позволяет получить значение переменной, если она есть, а иначе — значение по-умолчанию:

Проверка на пустоту

Напомню, переменная считается пустой (приводится к false), если она имеет одно из следующих значений:

  • "" (пустая строка)
  • 0 (целое или дробное число)
  • "0" (строка)
  • null
  • false
  • [] (пустой массив)
  • $v (переменная объявлена, но не имеет значения)

Функция empty() возвращает true , если переменная не существует или пустая:

Поведение isset() и empty() сначала может немного запутать: первая возвращает true при существовании переменной, вторая — при не существовании. К этому нужно просто привыкнуть.

На самом деле isset() и empty() , аналогично echo , являются синтаксическими конструкциями, а не функциями.

Существование элемента массива

Как мы узнали чуть выше, isset() возвращает false , если переменная существует, но имеет значение null . Для обычных переменных это терпимо, но при работе с массивами в некоторых случаях требуется точно знать, существует ли элемент массива или нет, даже со значением null.

В PHP для этого существует функция array_key_exists() :

(PHP 4, PHP 5, PHP 7)

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

Описание

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

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

До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.

Читайте также:  Hi patch что это за программа

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

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

Возвращает FALSE , если var существует, и содержит непустое и ненулевое значение. В противном случае возвращает TRUE .

Следующие значения воспринимаются как пустые:

  • "" (пустая строка)
  • (целое число)
  • 0.0 (дробное число)
  • "0" (строка)
  • NULL
  • FALSE
  • array() (пустой массив)
  • $var; (переменная объявлена, но не имеет значения)

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

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

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

Проверка нечислового индекса строки возвращает TRUE .

Примеры

Пример #1 Простое сравнение empty() и isset() .

// Принимает значение true, потому что $var пусто
if (empty( $var )) <
echo ‘$var или 0, или пусто, или вообще не определена’ ;
>

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

Пример #2 empty() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в empty() .

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

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

Примечания

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

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

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

  • isset() — Определяет, была ли установлена переменная значением отличным от NULL
  • __isset()
  • unset() — Удаляет переменную
  • array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
  • count() — Подсчитывает количество элементов массива или что-то в объекте
  • strlen() — Возвращает длину строки
  • Таблица сравнения типов
Читайте также:  1С таблица значений цвет строки

(PHP 4, PHP 5, PHP 7)

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

Описание

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

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

До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.

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

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

Возвращает FALSE , если var существует и содержит непустое ненулевое значение. В противном случае возвращает TRUE .

Следующие значения воспринимаются как пустые:

  • "" (пустая строка)
  • (целое число)
  • 0.0 (число с плавающей точкой)
  • "0" (строка)
  • NULL
  • FALSE
  • array() (пустой массив)

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

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

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

Проверка нечислового индекса строки возвращает TRUE .

Примеры

Пример #1 Простое сравнение empty() и isset() .

// Принимает значение true, потому что $var пусто
if (empty( $var )) <
echo ‘$var или 0, или пусто, или вообще не определена’ ;
>

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

Пример #2 empty() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в empty() .

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

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

Примечания

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

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

Читайте также:  Msi geforce gtx 750 ti обзор

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

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

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.