Мені потрібно встановити змінну на значення за замовчуванням, якщо вона вже не встановлена. Наступна конфігурація виконує завдання:
if ($foo ~ "^$") {
set $foo default-value;
}
Але він генерує попередження про виконання:
за допомогою неініціалізованої змінної "foo"
Чи є спосіб перевірити, чи встановлена змінна без генерації попередження та без вимкнення попередження глобально за допомогою:
uninitialized_variable_warn off;
uninitialized_variable_warn
, не потрібно його встановлювати глобально, ви можете просто встановити його там, де потрібно використовувати потенційно неініціалізовані змінні. Я використовую це для передачі даних про SSL до PHP, який буде порожнім, якщо доступ до сторінки без SSL.
nginx: [emerg] "uninitialized_variable_warn" directive is duplicate in
uninitialized_variable_warn
як частину, php.conf
яка імпортується лише в тих місцях, які підтримують PHP, тому я, безумовно, використовую її лише в тих областях, залишаючи попередження всюди. Я не uninitialized_variable_warn
встановив жодної іншої області застосування (дозволяючи це за замовчуванням true
).
set_if_empty
з github.com/openresty/set-misc-nginx-module