filter_has_var()
может быть полезно, если по какой-то причине суперглобалы были очищены, поскольку он проверяет исходные входные данные, а не $ _GET, $ _POST, $ _ETC.
Например:
$_GET["injected"] = 123;
var_dump( filter_has_var(INPUT_GET, "injected") ); // false
// or the other way round
Хотя вы можете перезаписать переменную, расширение filter
получает доступ к отдельной копии. И INPUT_GET
не будет псевдонимом $_GET
суперглобального.
Кроме того, другая причина - использовать его для объединения. Если вы широко используете filter_var, то набор правил будет более предпочтительным, чем filter_has_var (), а не isset ().
Но не используйте одно или другое из-за каких-то глупых причин производительности.