я традиционно использую filter_var()
функцию для дезинфицирующего $_GET
и $_POST
данные, такие как:Когда используется filter_input() или filter_var()?
$foo = filter_var($_GET['foo'], FILTER_SANITIZE_NUMBER_INT);
но PHP также имеет функцию filter_input()
, которая имеет другой синтаксис для выполнения то же самое:
$foo = filter_input(INPUT_GET, 'foo', FILTER_SANITIZE_NUMBER_INT);
Это просто синонимы? Есть ли преимущество в использовании одного над другим?
Я проверил страницы руководства, но я не вижу большой разницы (только если/как сообщается об ошибке). Семантически/наилучшая практика, что имеет наибольший смысл?
'filter_var' принимает любую переменную, поэтому вам придется самостоятельно искать ошибки неопределенной переменной. 'filter_input' вместо этого использует исходные значения' $ _GET', '$ _POST',' $ _COOKIE', '$ _ENV' или' $ _SERVER', что означает, что любые изменения, внесенные в эти переменные, не будут учитываться. См. Https://secure.php.net/manual/en/function.filter-input.php#115086 –
@CharlotteDunois, поэтому filter_input - это более конкретный случай filter_var? Кажется странным, что PHP будет иметь другую функцию с различным синтаксисом и так мало добавленной выгоды. – Sablefoste