Мне нужно установить значение переменной по умолчанию, если оно еще не установлено. Следующий конфиг делает работу:
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