?? и ?: на значении 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
