Через ini_set эту настройку устанавливать бессмысленно
Об этом написано в документации
$_ENV['TEST'] = 666;
var_dump(filter_has_var(INPUT_ENV, 'TEST')); // false
// перешли по ссылке /?test=666
var_dump(filter_input(INPUT_GET, 'test')); // 666
для несуществующих переменных, хотя согласно документации должна возвращать false
$_GET['test'] = 666; // просто взяли и нахулиганили руками
var_dump(filter_has_var(INPUT_GET, 'test'), filter_input(INPUT_GET, 'test', FILTER_NULL_ON_FAILURE)); // false, null (потому что false с флагом на null)
// переходим по ссылке /?test=666 - хулиганства нет, filter_input задетектирует, что прилёт совершён именно методом GET
var_dump(filter_has_var(INPUT_GET, 'test'), filter_input(INPUT_GET, 'test')); // true, 666
if (!function_exists('env')) {
function env(string $key, mixed $default = null): mixed
{
return filter_input(INPUT_ENV, $key) ?: $default;
}
}