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手册吧