Что такое isset в php
Перейти к содержимому

Что такое isset в php

  • автор:

Что такое isset в php

Если переменная объявлена, но ей изначально не присвоено никакого значения (иначе говоря она не инициализирована), или если переменная вовсе неопределена, то нам будет проблематично ее использовать. Например:

При попытке вывести значение переменной мы получим диагностическое сообщение о том, что переменная не определена:

Warning: Undefined variable $a in C:\localhost\hello.php on line 10

Ситуация может показатся искуственной. Тем не менее нередко переменные в PHP получают некоторые данные извне, например, ввод пользователя. Соответственно возникает необходимость перед использованием данных проверить, что эти данные определены, что они имеются.

Для проверки существования переменной PHP предоставляет ряд встроенных функций.

Оператор isset

Функция isset() позволяет определить, инициализирована ли переменная или нет. Если переменная определена, то isset() возвращает значение true . Если переменная не определена, то isset() возвращает false . Также если переменная имеет значение null функция isset() также возвращает false .

Здесь переменная $message не инициализирована, поэтому выражение isset($message) будет возвращать значение false .

переменная message не определена

Теперь пусть переменная $message имеет начальное значение:

$message = "Hello PHP"; if(isset($message)) echo $message; else echo "переменная message не определена";

В этом случае выражение isset($message) будет возвращать true , поэтому будет выполняться инструкция echo $message :

Hello PHP

Однако если переменной присвоено начальное значение null , то опять же будет считаться, что эта переменная не установлена:

$message = null; if(isset($message)) echo $message; else echo "переменная message не определена";
переменная message не определена

empty

Функция empty() проверяет переменную на «пустоту». «Пустая» переменная — это переменная, значение которой равно null , 0, false или пустой строке — в этом случае функция empty() возвращает true :

Здесь переменная $message хранит пустую строку, поэтому выражение empty($message) возвратит true .

переменная message не определена

При этом если строка содержит даже хотя бы один пробел и больше ничего ( $message = » » ), то такая строка уже не считается пустой.

unset

С помощью функции unset() мы можем уничтожить переменную:

Но, как правило, необходимость в подобном удалении переменной возникает редко, так как PHP автоматически удаляет переменные, когда завершается выполнение контекста (например, функции), в котором определены эти переменные.

Что такое isset в PHP?

isset в языке программирования PHP — это функция, используемая для проверки того, была ли установлена переменная. Она возвращает true , если переменная существует и имеет значение, отличное от null , и false в противном случае. isset полезна для предотвращения ошибок, связанных с обращением к несуществующим переменным.

Комментарии

Пока комментариев нет

Профессия Python разработчик
Старт: 14 марта 2024

Изучение Python до профи / Основы, Django, TKinter

Изучение языка C# для начинающих

Интернет магазин WordPress / Создание Ecommerce

Функция isset в PHP, описание и примеры

Конструкция языка php, функция isset() определяет существует ли переменная.

Версия PHP 3 и выше.

bool isset(mixed var [, mixed var [, . ]])

Параметры функции isset

var Переменные, массив, иная структура данных.

Пример использования функции isset

$a = 10; if (isset($a)) // вернет True echo 'Переменная существует '; else echo 'Переменная не существует';

При назначенной переменной $a (даже если ей назначить значения 0 (ноль), False, или пустой массив), функция isset будет возвращать True. Если же переменная не назначена, то False.

$a = False; if (isset($a)) // вернет True echo 'Переменная существует '; else echo 'Переменная не существует';

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

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

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

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

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

'; echo isset($name, $age, $status) ? 'Василиса есть' : 'Василисы нет';

Результат в браузере:

Василиса есть Василисы нет

Операторы объединения с NULL

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

В PHP 7.4 появился присваивающий оператор объединения с NULL ??= .Он позволяет удобно задать значение переменной, если эта переменная ещё не задана (либо равна NULL):

// Как было раньше $name = $name ?? 'Василий'; // Как стало в PHP 7.4 $name ??= 'Василий';

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

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

  • 0 (целое или дробное)
  • » (пустая строка)
  • ‘0’ (строка с числом 0)
  • [] (пустой массив)
  • null

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

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

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

Функции isset() и empty() гасят ошибку обращения к несуществующей переменной. Это одна из причин, почему они не являются обычными функциями.

ceil($var); // Notice: Undefined variable: var isset($var); // Ошибки нет

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

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

Бывают ситуации, когда нам необходимо точно знать, существует ли определённый элемент массива или нет, даже если его значение NULL.

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *