我需要将变量设置为默认值(如果尚未设置)。以下配置可以完成这项工作:
if ($foo ~ "^$") {
set $foo default-value;
}
但是它会生成运行时警告:
使用未初始化的“ foo”变量
有没有一种方法可以测试是否设置了变量而不生成警告,也没有通过以下方式全局关闭警告:
uninitialized_variable_warn off;
只是在寻找类似内容时发现了这一点,但似乎
—
Haravikk
uninitialized_variable_warn
不需要全局设置,您可以将其设置为需要使用可能未初始化的变量的地方。我正在使用它来将SSL详细信息传递给PHP,如果在没有SSL的情况下访问该页面,该信息将为空。
@Haravikk似乎并非如此
—
n1te
nginx: [emerg] "uninitialized_variable_warn" directive is duplicate in
您还在其他地方设置它吗?我使用的是仅由支持PHP的位置导入
—
哈拉维克
uninitialized_variable_warn
的a php.conf
的一部分,因此我肯定只在那些范围内使用它,而在其他地方留下警告。我没有uninitialized_variable_warn
设置其他任何范围(将其默认设置为true
)。
set_if_empty
从github.com/openresty/set-misc-nginx-module