QueryGet
QueryGet предоставляет статические методы для получения параметров текущего GET-запроса.Поддерживает
- проверку наличия параметра
- получение значения с экранированными HTML-символами
- получение исходного значения без обработки
Создавать экземпляр класса не нужно.
Быстрый старт
if (QueryGet::isset('page')) {
$page = QueryGet::getValue('page');
}Для URL /catalog?page=2 переменная $page будет содержать строку 2.
Проверка параметра
isset($key): bool
Возвращает true, если параметр присутствует в GET-запросе:
if (QueryGet::isset('search')) {
// Параметр search передан.
}Проверяйте наличие параметра перед вызовом getOriginalValue().
Получение значения
getValue($key): ?string
Возвращает значение с экранированными специальными HTML-символами:
$search = QueryGet::getValue('search');
if ($search !== null) {
echo '<p>' . $search . '</p>';
}Символы <, >, &, одинарные и двойные кавычки преобразуются в HTML-сущности.
Если параметр отсутствует, метод возвращает null.
Метод не проверяет назначение и формат значения. Например, числовой параметр нужно дополнительно привести к числу:
$page = (int) QueryGet::getValue('page');
if ($page < 1) {
$page = 1;
}Исходное значение
getOriginalValue($key): mixed
Возвращает значение без экранирования:
if (QueryGet::isset('search')) {
$search = QueryGet::getOriginalValue('search');
}Используйте этот метод только тогда, когда требуется самостоятельно обработать исходное значение.
Не выводите полученное значение в HTML без дополнительного экранирования.
Если вызвать метод для отсутствующего параметра, PHP сформирует предупреждение о неизвестном ключе. Поэтому сначала используйте isset().
Параметры-массивы
getValue() предназначен для строковых значений. Если GET-параметр передан как массив, используйте getOriginalValue() и проверьте его тип:
$tags = [];
if (QueryGet::isset('tags')) {
$value = QueryGet::getOriginalValue('tags');
$tags = is_array($value) ? $value : [];
}Каждый элемент такого массива нужно проверять и обрабатывать отдельно.
Важные замечания
- класс используется статически
getValue()возвращаетnull, если параметр отсутствуетgetValue()экранирует HTML-символы, но не проверяет формат значенияgetValue()предназначен только для строковых параметровgetOriginalValue()возвращает данные без обработки- перед вызовом
getOriginalValue()проверяйте параметр черезisset() - все данные GET-запроса считаются пользовательским вводом и требуют проверки в зависимости от назначения