Предновогодний PHP-сюрприз: представьте себе элемент формы с пробелами в атрибуте name <input type="text" name="имя с пробелом">, делаем submit формы в браузере, что увидим в $_POST?
Ответ: ['имя_с_пробелом' => …]
Откуда взялись подчёркивания вместо пробелов в ключе 'имя_с_пробелом'? Оказывается, это сделано для совместимости с register_globals (есть олды, которые помнят register_globals?)!
Более того, на подчёркивания заменяются не только пробелы: