PHP

Как вывести все переменные PHP на странице для отладки

Короткий ответ: для отладки отдельных переменных используйте var_dump() или print_r(), а для списка переменных текущей области — get_defined_vars(). Но вывод всех переменных нельзя оставлять на публичном сайте, потому что там могут быть пароли, токены, пути и данные пользователя

Такой вывод нужен только в разработке: быстро понять, что лежит в переменной, пришли ли данные формы, какие серверные значения доступны и почему условие сработало не так

Вывести одну переменную

<?php

$name = 'Динар';

var_dump($name);

Результат покажет тип и значение

string(10) "Динар"

var_dump() полезен, когда важен не только текст, но и тип значения

Вывести массив красиво

<?php

$user = [
    'name' => 'Динар',
    'role' => 'admin',
];

echo '<pre>';
print_r($user);
echo '</pre>';

Тег <pre> сохраняет переносы и отступы, поэтому массив проще читать в браузере

Вывести все переменные текущей области

<?php

$title = 'Урок PHP';
$count = 3;

echo '<pre>';
print_r(get_defined_vars());
echo '</pre>';

get_defined_vars() возвращает массив всех переменных, определенных в текущей области видимости. В нем могут оказаться и служебные массивы вроде $_SERVER

Вывести GET и POST

Для формы чаще всего достаточно посмотреть конкретные суперглобальные массивы

<?php

echo '<pre>';
print_r($_GET);
print_r($_POST);
echo '</pre>';

Если форма отправлена методом post, данные будут в $_POST. Если параметры переданы в адресной строке, они будут в $_GET

Вывести серверные переменные

<?php

echo '<pre>';
print_r($_SERVER);
echo '</pre>';

$_SERVER показывает адрес запроса, метод, путь к файлу, данные веб-сервера и часть окружения. На публичном сайте такой вывод особенно опасен: он раскрывает технические детали

Безопасный отладочный помощник

Можно сделать маленькую функцию

<?php

function dumpValue(mixed $value): void
{
    echo '<pre>';
    var_dump($value);
    echo '</pre>';
}

$items = ['PHP', 'HTML', 'MySQL'];

dumpValue($items);

Так отладочный вывод легче найти и удалить после проверки

Как не показать отладку всем пользователям

В учебном проекте можно просто удалить var_dump() после проверки. В реальном проекте вывод отладки должен быть доступен только разработчику. Например, по локальному окружению или отдельному флагу, который не включен на рабочем сайте

Не делайте так на продакшене

print_r(get_defined_vars());

Это может раскрыть сессии, email, IP, пути к файлам и внутренние настройки

Мини-практика

Создайте форму с полями name и email, отправьте ее методом POST и выведите $_POST через print_r() в <pre>. Затем замените общий вывод на аккуратный вывод только двух полей, уже через htmlspecialchars()

Частые ошибки

Оставляют var_dump на сайте Отладочный вывод нужно удалять перед публикацией

Выводят все переменные вместо нужной Часто достаточно посмотреть $_POST['email'], а не весь проект

Не используют <pre> Без <pre> массивы в браузере читаются хуже

Путают print_r и var_dump print_r() удобнее для структуры, var_dump() показывает еще и типы

Что почитать дальше по PHP

Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x