Вступить в клуб →
средняявопросPHP 8: типы и поведение языка

?? и ?: на значении 0: что попадёт в переменные

Конфиг интеграции пришёл из БД, таймаут в нём явно выставлен в 0 (без ограничения), число ретраев не задано:

$config = ['timeout' => 0, 'retries' => null];

$timeout  = $config['timeout'] ?? 30;
$retries  = $config['retries'] ?? 3;
$fallback = $config['timeout'] ?: 30;

echo "$timeout $retries $fallback";

Что выведет скрипт?

  • 30 3 30
  • 0 3 0
  • 0 3 30
  • 0 null 30

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела