测试是否设置了 nginx 变量

Jan*_*bel 19 nginx

如果尚未设置,我需要将变量设置为默认值。以下配置完成这项工作:

if ($foo ~ "^$") {
   set $foo default-value;
}
Run Code Online (Sandbox Code Playgroud)

但它会生成运行时警告:

使用未初始化的“foo”变量

有没有办法测试是否设置了变量而不生成警告并且不全局关闭警告:

uninitialized_variable_warn off;
Run Code Online (Sandbox Code Playgroud)

jas*_*eey 13

我正在使用以下内容来检查变量是否存在:

if ($dir = false) {
    set $dir "";
}
Run Code Online (Sandbox Code Playgroud)

如果在到达这个位置块之前没有设置它,那么它会将它设置为一个空字符串。您可以轻松地在引号之间添加一个字符串。使用它进行配置测试时,我没有收到任何错误。

如果您看到其他情况,请告诉我。

  • 这个错误检查不再起作用,请使用`$foo ~ "^$"` (2认同)