记录一下PHP中方法filter_var的使用

发布时间:2024-01-05浏览次数:258 次
我们都知道,当我们从前端向后端传递一些布尔值的参数时,后端接收到的都会变成字符串,如我们从前端向后端传递参数 prefix:false,后端接收到之后$pref

我们都知道,当我们从前端向后端传递一些布尔值的参数时,后端接收到的都会变成字符串,如我们从前端向后端传递参数 prefix:false,后端接收到之后$prefix的值就变成字符串 “false”了,这是因为HTTP请求中的参数都是以字符串的形式传递的。

当然,解决的方式主要有两种,一种是在前端进行处理,比如自定义参数序列化的方式,将参数以序列化之后的字符串形式发给后端。不过这种方式,个人感觉还是比较繁琐的。这里讲第二种处理方式,使用PHP中的filter_var方法对参数进行处理。当然,如果不处理的话,我们也可以通过字符串的形式进行判断,但是最好还是严格按参数类型来更规范一些。

if ($prefix === 'true'){
        ...      
}

filter_var 在传递第二个参数FILTER_VALIDATE_BOOLEAN时,可以将字符串参数转换为布尔值 。作用为将常量为“ 1”,“ true”,“ on”和“ yes”返回TRUE。对于“ 0”,“ false”,“ off”和“ no”,返回FALSE,否则返回NULL。

那么使用这个方法,我们就可以很容易的将接受到的true或false字符串转变为对应的布尔值了。代码如下:

if (filter_var($prefix, FILTER_VALIDATE_BOOLEAN)) {
        ...      
}
扫一扫,在手机上查看