<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

Параллельно с курсом Вы также будете получать домашние задания, результатом которых станет, в том числе, полноценная серьёзная работа для портфолио.

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

isset и empty в PHP: разница, примеры и частые ошибки новичков

isset и empty в PHP: разница, примеры и частые ошибки новичков

Один из частых поисковых запросов новичков — isset и empty в PHP разница. Обе конструкции помогают проверять значения, но делают это по-разному. Из-за неправильного выбора легко получить баг: поле формы вроде заполнено, но PHP считает его пустым; элемент массива существует, но проверка ведёт себя неожиданно.

Что делает isset() в PHP

isset() проверяет, существует ли переменная и не равна ли она null. Если переменная объявлена и содержит любое значение, кроме null, результат будет true.

$name = 'Анна';
$age = 0;
$active = false;
$deletedAt = null;

var_dump(isset($name));      // true
var_dump(isset($age));       // true
var_dump(isset($active));    // true
var_dump(isset($deletedAt)); // false
var_dump(isset($unknown));   // false

Важный вывод: 0, false и пустая строка для isset() — это существующие значения. Исключение — только null и несуществующая переменная.

Что делает empty() в PHP

empty() проверяет, является ли значение «пустым» с точки зрения PHP. При этом она не выдаёт предупреждение, если переменная не существует.

$values = [
    ''      => '',
    'zero'  => 0,
    'str0'  => '0',
    'false' => false,
    'null'  => null,
    'array' => [],
    'text'  => 'hello',
];

var_dump(empty($values['zero']));  // true
var_dump(empty($values['str0']));  // true
var_dump(empty($values['false'])); // true
var_dump(empty($values['array'])); // true
var_dump(empty($values['text']));  // false
var_dump(empty($notExists));       // true

Самая неожиданная особенность: строка '0' считается пустой. Это важно при обработке форм, фильтров, количества товаров, рейтингов и любых полей, где ноль является допустимым значением.

Короткая таблица различий

Значениеisset()empty()
$x = 'text'truefalse
$x = ''truetrue
$x = 0truetrue
$x = '0'truetrue
$x = falsetruetrue
$x = nullfalsetrue
переменной нетfalsetrue

Проверка элементов массива

Чаще всего isset() и empty() используют при работе с массивами: настройками, данными пользователя, параметрами URL и результатами из базы.

$user = [
    'name' => 'Иван',
    'email' => '',
    'age' => 0,
];

if (isset($user['name'])) {
    echo 'Ключ name существует и не null';
}

if (empty($user['email'])) {
    echo 'Email не заполнен';
}

if (isset($user['age'])) {
    echo 'Возраст передан, даже если он равен 0';
}

Если вам нужно узнать именно наличие ключа в массиве, даже если значение равно null, используйте array_key_exists().

$data = ['token' => null];

var_dump(isset($data['token']));              // false
var_dump(array_key_exists('token', $data));   // true

Практический пример: обработка формы

Допустим, есть форма с полями email и quantity. Количество может быть равно нулю, например, если пользователь хочет очистить корзину. В таком случае empty() для проверки количества будет плохим выбором.

$email = $_POST['email'] ?? '';
$quantity = $_POST['quantity'] ?? null;

$errors = [];

if (trim($email) === '') {
    $errors[] = 'Введите email';
}

if ($quantity === null || !is_numeric($quantity)) {
    $errors[] = 'Количество должно быть числом';
} else {
    $quantity = (int) $quantity;
}

if ($errors) {
    print_r($errors);
} else {
    echo 'Данные можно обрабатывать';
}

Здесь мы не используем empty($quantity), потому что значение '0' тоже стало бы «пустым». Вместо этого отдельно проверяем наличие и числовой формат.

Когда использовать isset()

  • Когда нужно проверить, передан ли параметр.
  • Когда важно отличить null от реального значения.
  • Когда проверяете несколько переменных сразу.
if (isset($_GET['page'], $_GET['sort'])) {
    echo 'Оба параметра переданы и не равны null';
}

Когда использовать empty()

  • Когда нужно проверить, заполнено ли текстовое поле.
  • Когда значения 0, '0', false и пустой массив действительно должны считаться пустыми.
  • Когда неважно, существует переменная или просто содержит пустое значение.
$comment = $_POST['comment'] ?? '';

if (empty(trim($comment))) {
    echo 'Комментарий пустой';
}

Типичные ошибки

Ошибка 1: проверять числовые поля через empty(). Если ноль допустим, такая проверка сломает логику.

// Плохо: '0' будет считаться ошибкой
if (empty($_POST['price'])) {
    echo 'Укажите цену';
}

// Лучше
if (!isset($_POST['price']) || !is_numeric($_POST['price'])) {
    echo 'Цена должна быть числом';
}

Ошибка 2: думать, что isset() проверяет непустую строку. Пустая строка существует, поэтому isset('') фактически вернёт true, если значение лежит в переменной.

$title = '';

if (isset($title)) {
    echo 'Переменная есть'; // выполнится
}

Рекомендации

  • Для наличия переменной или параметра используйте isset().
  • Для проверки пустого текстового поля используйте trim($value) === ''.
  • Для наличия ключа массива со значением null используйте array_key_exists().
  • Не применяйте empty() к числам, если 0 является нормальным значением.
  • Для входных данных сначала проверяйте наличие, затем валидируйте тип и диапазон.

Если вы хотите системно разобраться не только с такими базовыми конструкциями, но и с формами, базами данных, безопасностью и реальными проектами, посмотрите курс «PHP и MySQL с Нуля до Гуру 3.0» — практический путь от основ до уверенной разработки.

Итог

Главная разница проста: isset() отвечает на вопрос «существует ли значение и не null?», а empty() — «является ли значение пустым?». Для новичка это может выглядеть мелочью, но именно такие проверки часто влияют на авторизацию, формы, корзины, фильтры и настройки. Используйте их осознанно, особенно когда работаете с нулём, строкой '0' и данными пользователя.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (https://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: https://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: https://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.