Мені потрібно встановити змінну на значення за замовчуванням, якщо вона вже не встановлена. Наступна конфігурація виконує завдання:
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