ฉันจำเป็นต้องตั้งค่าตัวแปรให้เป็นค่าเริ่มต้นหากยังไม่ได้ตั้งค่า config ต่อไปนี้ทำงาน:
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