QueryGet


QueryGet предоставляет статические методы для получения параметров текущего GET-запроса.

Поддерживает

  • проверку наличия параметра
  • получение значения с экранированными HTML-символами
  • получение исходного значения без обработки

Создавать экземпляр класса не нужно.

Быстрый старт

php
if (QueryGet::isset('page')) {
    $page = QueryGet::getValue('page');
}

Для URL /catalog?page=2 переменная $page будет содержать строку 2.

Проверка параметра

isset($key): bool

Возвращает true, если параметр присутствует в GET-запросе:

php
if (QueryGet::isset('search')) {
    // Параметр search передан.
}

Проверяйте наличие параметра перед вызовом getOriginalValue().

Получение значения

getValue($key): ?string

Возвращает значение с экранированными специальными HTML-символами:

php
$search = QueryGet::getValue('search');

if ($search !== null) {
    echo '<p>' . $search . '</p>';
}

Символы <, >, &, одинарные и двойные кавычки преобразуются в HTML-сущности.

Если параметр отсутствует, метод возвращает null.

Метод не проверяет назначение и формат значения. Например, числовой параметр нужно дополнительно привести к числу:

php
$page = (int) QueryGet::getValue('page');

if ($page < 1) {
    $page = 1;
}

Исходное значение

getOriginalValue($key): mixed

Возвращает значение без экранирования:

php
if (QueryGet::isset('search')) {
    $search = QueryGet::getOriginalValue('search');
}

Используйте этот метод только тогда, когда требуется самостоятельно обработать исходное значение.

Не выводите полученное значение в HTML без дополнительного экранирования.

Если вызвать метод для отсутствующего параметра, PHP сформирует предупреждение о неизвестном ключе. Поэтому сначала используйте isset().

Параметры-массивы

getValue() предназначен для строковых значений. Если GET-параметр передан как массив, используйте getOriginalValue() и проверьте его тип:

php
$tags = [];

if (QueryGet::isset('tags')) {
    $value = QueryGet::getOriginalValue('tags');
    $tags = is_array($value) ? $value : [];
}

Каждый элемент такого массива нужно проверять и обрабатывать отдельно.

Важные замечания

  • класс используется статически
  • getValue() возвращает null, если параметр отсутствует
  • getValue() экранирует HTML-символы, но не проверяет формат значения
  • getValue() предназначен только для строковых параметров
  • getOriginalValue() возвращает данные без обработки
  • перед вызовом getOriginalValue() проверяйте параметр через isset()
  • все данные GET-запроса считаются пользовательским вводом и требуют проверки в зависимости от назначения