NULL значения

Тренажер по PHP для пользователей с начальным уровнем подготовки.

Тренажер PHP

В этом наборе заданий мы погрузимся в одну из фундаментальных концепций PHP — специальный тип данных NULL. NULL — это не ноль, не пустая строка и не false. Это уникальное значение, которое означает полное отсутствие значения. Вы научитесь присваивать NULL, правильно проверять переменные на это значение, а также поймете разницу между NULL, пустой строкой и несуществующей переменной. Эти задания помогут вам избежать распространенных ошибок и писать более надежный и предсказуемый код.

Список тем

Присвоение значения NULL

id: 38916_task_null_1

В PHP есть специальное ключевое слово для обозначения "отсутствия значения". Присвойте это значение переменной `$profile_picture`, чтобы показать, что у пользователя пока нет аватара.

Заполните пропуски
<?php

// У пользователя еще нет аватара
$profile_picture = input1S;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Что выведет echo NULL?

id: 38916_task_null_2

Представим, что мы пытаемся вывести на страницу значение переменной, которая равна NULL. Какой результат мы увидим в браузере? Впишите ответ в поле. Если вы считаете, что ничего не будет выведено, оставьте поле пустым.

Что должно получиться?
<?php

$middle_name = NULL;
echo "Имя: Иван " . $middle_name . " Петров";
Сообщения
Проверить
Показать подсказку

Диагностика с var_dump

id: 38916_task_null_3

В отличие от `echo`, функция `var_dump()` предоставляет подробную информацию о переменной. Выберите из списка, что именно выведет `var_dump()` для переменной, значение которой равно NULL.

Выберите правильный вариант ответа
<?php

$user_session = NULL;
var_dump($user_session);
Сообщения
Проверить
Показать подсказку

Строгое сравнение с NULL

id: 38916_task_null_4

В коде допущена логическая ошибка. Пустая строка сравнивается с NULL, и условие ошибочно срабатывает. Исправьте оператор сравнения, чтобы проверка была строгой и учитывала не только значение, но и тип.

Найдите ошибку и исправьте
<?php
$comment = ''; // Пустой комментарий от пользователя
 
if ($comment == NULL) {
    // Этот блок не должен выполняться для пустой строки
    echo "Комментарий не существует!";
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Способы проверки значения

id: 38916_task_null_5

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

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
is_null($var)
$var === NULL
isset($var)
empty($var)
Возвращает `false`, если переменная равна NULL.
Возвращает `true` для NULL, 0, '', false и пустых массивов.
Функция, которая возвращает `true` только если переменная равна NULL.
Оператор строгого сравнения, полностью идентичный `is_null()`.
Сообщения
Проверить
Показать подсказку

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

id: 38916_task_null_6

Соберите код, используя элементы из банка. Переменной `$page_title` должно присваиваться значение из `$_POST['title']`. Если же оно не существует или равно `NULL`, ей должно присваиваться значение по умолчанию 'Без заголовка'.

Нужно правильно расставить в пропуски предложенные варианты
// Получаем заголовок страницы или используем значение по умолчанию
$page_title = input1S input2S input3S;

echo $page_title;
$_POST['title']
'Без заголовка'
??
?:
=
||
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

NULL против unset

id: 38916_task_null_7

В коде показаны два способа "обнулить" переменную: присвоить `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);
Сообщения
Проверить
Показать подсказку

Безопасное получение данных

id: 38916_task_null_8

Соберите скрипт, который безопасно получает опциональный параметр `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'])) { }
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру