В этом наборе заданий мы погрузимся в одну из фундаментальных концепций PHP — специальный тип данных NULL. NULL — это не ноль, не пустая строка и не false. Это уникальное значение, которое означает полное отсутствие значения. Вы научитесь присваивать NULL, правильно проверять переменные на это значение, а также поймете разницу между NULL, пустой строкой и несуществующей переменной. Эти задания помогут вам избежать распространенных ошибок и писать более надежный и предсказуемый код.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Присвоение значения NULL
В PHP есть специальное ключевое слово для обозначения "отсутствия значения". Присвойте это значение переменной `$profile_picture`, чтобы показать, что у пользователя пока нет аватара.
<?php
// У пользователя еще нет аватара
$profile_picture = input1S;Что выведет echo NULL?
Представим, что мы пытаемся вывести на страницу значение переменной, которая равна NULL. Какой результат мы увидим в браузере? Впишите ответ в поле. Если вы считаете, что ничего не будет выведено, оставьте поле пустым.
<?php
$middle_name = NULL;
echo "Имя: Иван " . $middle_name . " Петров";Диагностика с var_dump
В отличие от `echo`, функция `var_dump()` предоставляет подробную информацию о переменной. Выберите из списка, что именно выведет `var_dump()` для переменной, значение которой равно NULL.
<?php
$user_session = NULL;
var_dump($user_session);Строгое сравнение с NULL
В коде допущена логическая ошибка. Пустая строка сравнивается с NULL, и условие ошибочно срабатывает. Исправьте оператор сравнения, чтобы проверка была строгой и учитывала не только значение, но и тип.
<?php$comment = ''; // Пустой комментарий от пользователя if ($comment == NULL) { // Этот блок не должен выполняться для пустой строки echo "Комментарий не существует!";}Способы проверки значения
В PHP есть несколько способов проверить переменную. Сопоставьте каждую конструкцию в левой колонке с ее точным описанием в правой. Некоторые из них ведут себя по-разному со значением NULL.
is_null($var)$var === NULLisset($var)empty($var)Оператор объединения с NULL
Соберите код, используя элементы из банка. Переменной `$page_title` должно присваиваться значение из `$_POST['title']`. Если же оно не существует или равно `NULL`, ей должно присваиваться значение по умолчанию 'Без заголовка'.
// Получаем заголовок страницы или используем значение по умолчанию
$page_title = input1S input2S input3S;
echo $page_title;NULL против unset
В коде показаны два способа "обнулить" переменную: присвоить `NULL` и использовать `unset()`. Выберите, что вернет `var_dump()` для `$var1` и `$var2` в конце скрипта. Обратите внимание на переносы строк в вариантах ответа.
<?php
error_reporting(E_ALL & ~E_NOTICE); // Скроем Notice для чистоты вывода
$var1 = 'data';
$var1 = NULL;
$var2 = 'data';
unset($var2);
var_dump($var1);
var_dump($var2);Безопасное получение данных
Соберите скрипт, который безопасно получает опциональный параметр `sort` из массива `$config`. Если ключ `sort` существует, его значение присваивается переменной `$orderBy`. Если нет, `$orderBy` должна получить значение `NULL`. Затем скрипт должен вывести результат.
<?php$config = ['theme' => 'dark', 'show_hidden' => false];$orderBy = $config['sort'] ?? NULL;var_dump($orderBy);?>$orderBy = $config['sort'];if (empty($config['sort'])) { }