Tôi cần đặt một biến thành một giá trị mặc định nếu nó chưa được đặt. Sau đây cấu hình thực hiện công việc:
if ($foo ~ "^$") {
set $foo default-value;
}
Nhưng nó tạo ra các cảnh báo thời gian chạy:
sử dụng biến "foo" chưa được khởi tạo
Có cách nào để kiểm tra nếu một biến được đặt mà không tạo cảnh báo và không tắt cảnh báo trên toàn cầu với:
uninitialized_variable_warn off;
uninitialized_variable_warn
không cần phải được đặt trên toàn cầu, bạn chỉ có thể đặt nó ở nơi bạn cần sử dụng các biến có khả năng chưa được xác định. Tôi đang sử dụng điều này để chuyển các chi tiết SSL cho PHP, sẽ trống nếu trang được truy cập mà không có SSL.
nginx: [emerg] "uninitialized_variable_warn" directive is duplicate in
uninitialized_variable_warn
như một phần của php.conf
chỉ được nhập bởi các vị trí hỗ trợ PHP, vì vậy tôi chắc chắn chỉ sử dụng nó trong các phạm vi đó, trong khi để lại cảnh báo ở mọi nơi khác. Tôi không uninitialized_variable_warn
đặt ở bất kỳ phạm vi nào khác mặc dù (để mặc định là true
).
set_if_empty
từ github.com/openresty/set-misc-nginx-module