PHP中对一些从别的页面提交过来的数据,比如GET或者POST过来的数据,只能做一个简单的判断是否存在。比如isset()函数等等。不过PHP给我们预设了一个很好的filter_has_var()函数,可以通过简单的运用来判断指定类型的变量是否存在。
PHP filter_has_var() 函数
filter_has_var() 函数检查是否存在指定输入类型的变量。
若成功,则返回 true,否则返回 false。
语法filter_has_var(type, variable);
type:必需。规定要检查的类型。可能的值:INPUT_GET //GET提交的数据
INPUT_POST //POST提交的数据
INPUT_COOKIE //COOKIE数据
INPUT_SERVER //全局变量
INPUT_ENV // 服务器信息变量
variable:必需。规定要检查的变量。
PHP filter_has_var()判断一个POST与GET提交的数据
filter_has_var()判断GET提交的数据if(filter_has_var(INPUT_GET, "name")){
echo '有这个$_GET["name"]变量';
}else{
echo '没有这个$_GET["name"]变量';
}
//没有这个$_GET["name"]变量
//上面的代码,可以使用下面的代码来替换,一样的效果
if(isset($_GET["name"])){
echo '有这个$_GET["name"]变量';
}else{
echo '没有这个$_GET["name"]变量';
}
//没有这个$_GET["name"]变量
filter_has_var()判断POST提交的数据if(filter_has_var(INPUT_POST, "name")){
echo '有这个$_POST["name"]变量';
}else{
echo '没有这个$_POST["name"]变量';
}
//没有这个$_POST["name"]变量
//上面的代码可以使用下面的isset()判断函数来替换,实现的效果一样
if(isset($_POST["name"])){
echo '有这个$_POST["name"]变量';
}else{
echo '没有这个$_POST["name"]变量';
}
//没有这个$_POST["name"]变量
filter_has_var()总结:
filter_has_var()函数可以判断一个指定类型的数据是否存在,比如POST,GET提交的数据。但在判断前一定要写入类型参数比如“INPUT_POST”等。
filter_has_var()函数可以使用isset()函数来替换,效果是一样的,至于效率和安全,大家查查PHP手册吧