W3docs

print_r()

Функция print_r() в PHP выводит удобочитаемое представление переменной. Незаменима для отладки массивов и объектов.

Введение

print_r() — встроенная функция PHP, которая выводит удобочитаемое представление переменной. Для скалярных значений (строк, чисел, булевых) она просто печатает значение, однако по-настоящему раскрывается при работе с массивами и объектами: она выстраивает ключи и значения в виде отступленного дерева, так что структуру можно оценить с первого взгляда.

Это одна из трёх основных функций отладки в PHP наряду с var_dump() и var_export(). Используйте print_r(), когда нужно быстро и наглядно посмотреть, что находится внутри переменной.

Синтаксис

print_r(mixed $value, bool $return = false): string|true
ПараметрОписание
$valueПеременная для отображения. Любой тип — скаляр, массив или объект.
$returnНеобязательный. При значении false (по умолчанию) вывод печатается напрямую. При true вывод возвращается в виде строки вместо печати, что позволяет сохранить его в переменную.

Возвращаемое значение зависит от $return: по умолчанию (false) возвращает true; при true возвращает отформатированную строку.

Вывод массива

print_r() отображает вложенные массивы в виде отступленного дерева, что упрощает чтение многоуровневых данных:

php— editable, runs on the server

Каждый ключ отображается как [key] => value, а вложенный массив roles выводится с отступом под родительским элементом:

Array
(
    [name] => Alice
    [age] => 30
    [roles] => Array
        (
            [0] => admin
            [1] => editor
        )

)

Получение вывода в виде строки

Передайте true вторым аргументом, чтобы получить отформатированный текст вместо его печати. Это удобно для записи структуры в лог-файл, включения в сообщение об ошибке или оборачивания в HTML:

<?php
$data = ["x" => 1, "y" => 2];

$text = print_r($data, true);   // captured, not printed
error_log($text);               // e.g. send it to the log

echo strtoupper(substr($text, 0, 5)); // prints: ARRAY
?>

Совет: оберните в <pre> для браузера

На веб-странице браузеры сворачивают отступы и переносы строк, на которые опирается print_r(), поэтому вывод выглядит одной сплошной строкой. Оберните его в тег <pre> (или захватите с помощью $return и выведите внутри <pre>), чтобы сохранить читаемое форматирование:

<?php
echo "<pre>";
print_r($person);
echo "</pre>";
?>

Все три функции позволяют инспектировать переменные, но решают разные задачи:

  • print_r() — наиболее читаемый вывод. Лучший выбор для быстрой визуальной проверки структуры. Не показывает типы данных и длины строк.
  • var_dump() — показывает тип и размер каждого значения (int(30), string(5) "Alice") и может выводить несколько переменных сразу. Лучший выбор, когда важен тип (например, для различения 0, "0", false и null).
  • var_export() — выводит валидный PHP-код, воссоздающий переменную. Лучший выбор, когда нужно значение, которое можно вставить обратно в исходный код или закешировать.

Если нужно узнать только тип одной переменной, gettype() будет более прямолинейным решением.

Заключение

print_r() — самый дружелюбный из инструментов инспекции PHP: он выводит массивы и объекты в виде аккуратного отступленного дерева, которое легко просматривать при отладке. Используйте режим по умолчанию, чтобы сразу вывести переменную, передайте true, чтобы захватить результат в виде строки, и оберните вызов в <pre> при просмотре в браузере. Когда нужны типы и размеры — переходите к var_dump(); когда нужен повторно используемый PHP-код — используйте var_export().

Практика

Практика
Что делает функция print_r() в PHP?
Что делает функция print_r() в PHP?
Was this page helpful?