То, что вы упоминаете, безопасно, но слишком многословно. Использование операций с массивами PHP позволит PHP справиться с грязной работой за вас:
$sort_valid = array('video', 'audio', 'both');
$sort = 'both'
if (isset($_REQUEST['media']) && in_array($_REQUEST['media'], $sort_valid)) {
$sort = $_REQUEST['media'];
}
Если этот вид суперглобального синтаксического анализа встречается повсеместно в вашем коде, вы можете абстрагировать его в функцию, которая обрабатывает его для вас (как это делают многие крупные PHP-проекты).
Как отметил Гэвин, это также хорошая идея, если это вообще возможно, использовать интересующий вас суперглобал (то есть $_GET
, $_POST
или $_COOKIE
). Сейчас это может показаться не важным, но некоторые уродливые ошибки могут быть скрыты от конфликтов имен. Между тремя суперглобалами могут возникнуть конфликты (например, sort
в $_COOKIE
может относиться к сортировке результатов поиска по умолчанию, но sort
в $_GET
относится в порядке возрастания или убывания).