Выбор ответа Junior Исключения и ошибки обновлено

Ошибки json_decode

Вопрос

Что вернёт json_decode("{bad json") без флагов?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: null, детали в jsonlasterror(). По умолчанию jsondecode возвращает null на ошибке, что неотличимо от корректного JSON null.

Варианты ответа

  1. Бросит JsonException с описанием ошибки
  2. Вернёт пустой массив [] вместо объекта
  3. null, детали в json_last_error()правильный ответ
  4. Вернёт false, как многие функции PHP

Разбор

По умолчанию json_decode возвращает null на ошибке, что неотличимо от корректного JSON null. Флаг JSON_THROW_ON_ERROR (PHP 7.3) заставляет бросать JsonException. В PHP 8.3 появилась json_validate для проверки без декодирования.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.