Ich muss eine Variable auf einen Standardwert setzen, wenn dieser noch nicht festgelegt ist. Folgende Konfiguration erledigt den Job:
if ($foo ~ "^$") {
set $foo default-value;
}
Es werden jedoch Laufzeitwarnungen generiert:
Verwenden einer nicht initialisierten "foo" -Variable
Gibt es eine Möglichkeit zu testen, ob eine Variable gesetzt ist, ohne die Warnung zu generieren und ohne die Warnung global zu deaktivieren?
uninitialized_variable_warn off;
uninitialized_variable_warn, als ich nach etwas Ähnlichem gesucht habe, aber es scheint, als ob es nicht global festgelegt werden muss. Sie können es einfach dort festlegen, wo Sie möglicherweise nicht initialisierte Variablen verwenden müssen. Ich benutze dies, um SSL-Details an PHP zu übergeben, das leer ist, wenn auf die Seite ohne SSL zugegriffen wird.
nginx: [emerg] "uninitialized_variable_warn" directive is duplicate in
uninitialized_variable_warnals Teil eines php.conf, das nur von Orten importiert wird, die PHP unterstützen, also benutze ich es definitiv nur in diesen Bereichen, während ich die Warnung an anderer Stelle lasse. Ich habe jedoch uninitialized_variable_warnkeinen anderen Bereich festgelegt (Standardeinstellung ist true).
set_if_emptyunter github.com/openresty/set-misc-nginx-module