reqeust
判断请求是否存在一个键
错误代码
if(request()->keyword)return 'has';
return 'no';
乍一看似乎没啥问题,但是如果前端传递的值为0,那php将会判断为字符串‘0’,不执行,可有的时候传入的值就是要0
php判断为false的情况
- 布尔值 false 本身
- 整型值 0(零)
- 浮点型值 0.0(零)-0.0(零)
- 空字符串,以及字符串 “0”
- 不包括任何元素的数组
- 特殊类型 NULL(包括尚未赋值的变量)
- 由无属性的空元素创建 SimpleXML 对象,也就是既没有子节点也没有属性的元素。
详情请看手册php布尔类型转换
测试
如果传入的值是false,会认为是字符串false,则成功
正确做法
if(request()->has("keyword"))return 'has';
return 'no';
测试
更多细节请看Laravel 请求:判断是否存在输入值
参数为空时返回值
方法 | 参数为空时返回值 |
---|---|
request()->input() | null |
request()->字段名 | null |