filter_has_var()
(PHP 5 >= 5.2.0, PHP 7)
检测是否存在指定类型的变量
说明
filter_has_var(int $type,string $variable_name): bool
参数
- $type
 INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER、INPUT_ENV里的其中一个。- $variable_name
 要检查的变量名。
返回值
成功时返回TRUE,或者在失败时返回FALSE。
Through this example i think you can better understand
  if ( !filter_has_var(INPUT_GET, 'email') ) {
    echo "Email Not Found";
  }else{
    echo "Email Found";
  }
  Output
  localhost/nanhe/test.php?email=1 //Email Found
  localhost/nanhe/test.php?email //Email Found
  http://localhost/nanhe/test.php //Email Not Found
Consider on second example
http://localhost/nanhe/test.php
$_GET['email']="info@nanhe.in";
if ( !filter_has_var(INPUT_GET, 'email') ) {
    echo "Email Not Found";
  }else{
    echo "Email Found";
  }
But output will be Email Not FoundPlease note that the function does not check the live array, it actually checks the content received by php: <?php $_GET['test'] = 1; echo filter_has_var(INPUT_GET, 'test') ? 'Yes' : 'No'; ?> would say "No", unless the parameter was actually in the querystring. Also, if the input var is empty, it will say Yes.
For people who are wondering whether "magic_quotes_gpc" has any affect on "filter_input" operation, here is an extract from a PHP source file: * As the input filter acts on input data before the magic quotes function mangles data, all access through the filter() function will not have any quotes or slashes added - it will be the pure data as send by the browser. So when using this function, there is no need to strip the slashes when "magic_quotes_gpc" is enabled.
