Как в PHP отобразить на экране все имена, переданные через GET-параметр?

«Как в PHP отобразить на экране все имена, переданные через GET-параметр?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В PHP для работы с GET-параметрами используется суперглобальный массив $_GET. Способ обработки зависит от формата передачи данных.

1. Если имена переданы как массив (?name[]=John&name[]=Jane):

if (isset($_GET['name'])) {
    // Приводим к массиву на случай, если передано одно значение без скобок []
    $names = (array)$_GET['name'];
    foreach ($names as $name) {
        // Обязательно экранируем вывод для безопасности
        echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . "<br>n";
    }
}

2. Если имена переданы строкой через разделитель, например, запятую (?names=John,Jane,Bob):

if (!empty($_GET['names'])) {
    $names = explode(',', $_GET['names']);
    foreach ($names as $name) {
        $trimmedName = trim($name);
        if (!empty($trimmedName)) {
            echo htmlspecialchars($trimmedName, ENT_QUOTES, 'UTF-8') . "<br>n";
        }
    }
}

Ключевые моменты:

  • Проверка существования: Всегда используйте isset() или !empty() перед доступом к элементу массива.
  • Безопасность (XSS): Всегда экранируйте вывод с помощью htmlspecialchars().
  • Приведение типа: Используйте (array) для гарантированной работы с массивом, если ожидается список значений.