Как вывести «Hello, World» с динамическим именем в PHP?

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

Ответ

Для этого нужно получить имя из внешнего источника (например, HTTP-запроса) и безопасно вставить его в строку вывода.

Пример с GET-параметром и значением по умолчанию:

<?php
// Используем null-coalescing operator (??) для значения по умолчанию
$name = $_GET['name'] ?? 'World';
// Обязательно экранируем вывод для защиты от XSS-атак
echo 'Hello, ' . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . '!';

При обращении к скрипту как script.php?name=John будет выведено Hello, John!. Если параметр name не передан, выведется Hello, World!.

Важные аспекты безопасности и практики:

  1. Экранирование: Функция htmlspecialchars() преобразует специальные HTML-символы в сущности, предотвращая внедрение нежелательного HTML/JS-кода (XSS).
  2. Проверка ввода: Для более сложных сценариев стоит валидировать входные данные (например, проверить, что имя — это непустая строка допустимой длины).
  3. Источник данных: Для данных из формы используйте $_POST['name']. В современных фреймворках (Laravel, Symfony) данные запроса следует получать через специальные объекты Request, которые обеспечивают дополнительную безопасность.