ngx_lua在接受空参数时的处理结果


有的时候,我们需要某些参数是必须传的,有的为可选的。但是,如果可选的参数有值,那么就要对它进行检查。在ngx_lua中,接收参数后,它的值与php中是不一样的。下边一一举例说明。

第一种URL:url?test=1

毫无疑问,php与ngx_lua均得到“1”

第二种URL:url?test=

php与ngx_lua也是一致的,那就是得到空字符串“”

第三种URL:url?test

php中还跟第二种一样处理的,得到了空字符串“”;但是ngx_lua却是一个boolean型的true!

第四种URL:url?test=true

如果你没蒙的话,这个答案是很简单的:字符串“true”

总结

当一个参数如果在ngx_lua中是可选的,但是有值的情况下需要做检查的判断语句为:

local params = ngx.req.get_uri_args()

params[key] ~= nil and params[key] ~= “” and type(params[key]) ~= ‘boolean’


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注