Saya perlu mengatur variabel ke nilai default jika belum ditetapkan. Konfigurasi berikut berfungsi:
if ($foo ~ "^$") {
set $foo default-value;
}
Tapi itu menghasilkan peringatan runtime:
menggunakan variabel "foo" yang tidak diinisialisasi
Apakah ada cara untuk menguji apakah suatu variabel diatur tanpa menghasilkan peringatan dan tanpa mematikan peringatan secara global dengan:
uninitialized_variable_warn off;
uninitialized_variable_warntidak perlu diatur secara global, Anda bisa mengaturnya di mana Anda perlu menggunakan variabel yang berpotensi tidak diinisialisasi. Saya menggunakan ini untuk meneruskan detail SSL ke PHP, yang akan kosong jika halaman diakses tanpa SSL.
nginx: [emerg] "uninitialized_variable_warn" directive is duplicate in
uninitialized_variable_warnsebagai bagian dari php.confyang diimpor hanya oleh lokasi yang mendukung PHP, jadi saya pasti menggunakannya hanya di lingkup itu, sambil meninggalkan peringatan di tempat lain. Saya tidak uninitialized_variable_warnmenetapkan pada lingkup lain (membiarkannya default true).
set_if_emptydari github.com/openresty/set-misc-nginx-module