Вывод информации средствами PHP

Раздел: Основы PHP -> Базовый вывод

Основной способ: конструкция echo

Как в PHP вывести строку или переменную на экран?

Конструкция echo является основным и наиболее часто используемым способом вывода данных в PHP. Она может принимать одну или несколько строк (разделённых запятыми) и не возвращает значения. Скорость работы echo выше, чем у print.

echo 'Привет, мир!';
Привет, мир!

Типичная ошибка:

Забыта точка с запятой в конце инструкции. Это вызывает синтаксическую ошибку Parse error.

Решение:

Всегда завершать каждую инструкцию точкой с запятой. Пример: echo 'текст';

С помощью echo удобно выводить смешанный HTML и PHP код, просто выходя из режима PHP.

Как вывести одну строку без конкатенации?

Функция print работает аналогично echo, но возвращает 1, поэтому может быть использована в выражениях. Однако она принимает только один аргумент.

print 'Добрый день!';
Добрый день!

Ошибка:

Попытка передать несколько аргументов в print не сработает, вызовет синтаксическую ошибку.

Решение:

Используйте echo для вывода нескольких строк, а print только для одного выражения.

Как отформатировать вывод чисел или дат?

Функция printf выводит строку по шаблону, подставляя значения. Полезна для вывода с заданным числом десятичных знаков, выравниванием.

$price = 19.95;
printf('Цена: %.2f руб.', $price);
Цена: 19.95 руб.

Распространённая проблема:

Несоответствие типов спецификаторов и переданных аргументов (например, %d для строки) может привести к неожиданному результату или ошибке.

Решение:

Внимательно проверять соответствие спецификатора типу переменной: %s – строка, %d – целое, %f – число с плавающей точкой.

Как вывести массив или объект для отладки?

Функция var_dump выводит подробную информацию о переменной: тип, значение, длину строк/размер массива. Для объектов показывает свойства.

$arr = ['apple', 'banana', 'cherry'];
var_dump($arr);
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(6) "cherry"
}

Ошибка:

Использование var_dump в production-среде может показывать лишнюю информацию пользователям.

Решение:

Применять var_dump только на этапе разработки или под контролем флага DEBUG.

Как вывести данные в читаемой форме без типов?

Функция print_r выводит информацию о переменной в более компактном виде, без указания типов.

$user = ['name' => 'Иван', 'age' => 30];
print_r($user);
Array
(
    [name] => Иван
    [age] => 30
)

Проблема:

print_r выводит результат сразу, а не возвращает строку. Если нужно сохранить вывод, используйте второй аргумент true.

Решение:

$output = print_r($var, true); – возвращает строку без вывода на экран.

Как вывести сложный HTML или длинный текст без конкатенации?

Синтаксис heredoc позволяет выводить многострочные строки без экранирования кавычек.

$name = 'Мир';
echo <<<HTML
<div class="greeting">
  Привет, $name!
</div>
HTML;
<div class="greeting">
  Привет, Мир!
</div>

Ошибка:

Пробелы или табуляции перед закрывающим идентификатором heredoc приводят к ошибке.

Решение:

Закрывающий идентификатор должен быть в начале строки без отступов.

Как избежать интерполяции переменных в heredoc?

Nowdoc работает как heredoc, но не обрабатывает переменные внутри. Идентификатор заключается в одинарные кавычки.

echo <<<'EOT'
Это просто текст $variable не будет заменён
EOT;
Это просто текст $variable не будет заменён

Как вывести данные напрямую из HTML, не закрывая PHP-блок?

Короткий синтаксис <?= $variable ?> работает как <? echo $variable; ?> с PHP 5.4+.

<p>Текущая дата: <?= date('Y-m-d') ?></p>
<p>Текущая дата: 2025-04-10</p>

Проблема:

На старых серверах с PHP < 5.4 короткий тег может быть отключен.

Решение:

Использовать полный синтаксис <?php echo ... ?> для совместимости.

Расширенные примеры вывода данных

Пример 1. Вывод результата работы цикла

Пример
$items = ['первый', 'второй', 'третий'];
echo '<ul>';
foreach ($items as $item) {
    echo '<li>' . $item . '</li>';
}
echo '</ul>';
<ul><li>первый</li><li>второй</li><li>третий</li></ul>

Цель: формирование динамического HTML-списка. Возможные проблемы: забыли экранировать кавычки в атрибутах HTML.

Пример 2. Вывод с использованием буферизации (ob_start)

Пример
ob_start(); // включаем буферизацию вывода
echo 'Этот текст не попадёт сразу в браузер';
$content = ob_get_clean(); // захватываем и очищаем буфер
echo 'Вывод после буферизации: ' . $content;
Вывод после буферизации: Этот текст не попадёт сразу в браузер

Цель: перехват вывода для модификации или записи в файл. Типичная ошибка: забыть вызвать ob_start до первого echo.

Пример 3. Вывод отформатированной таблицы с помощью printf

Пример
$products = [
    ['name' => 'Мышь', 'price' => 450.5],
    ['name' => 'Клавиатура', 'price' => 1200],
];
echo '<table><tr><th>Товар</th><th>Цена</th></tr>';
foreach ($products as $p) {
    printf('<tr><td>%s</td><td>%.2f</td></tr>', $p['name'], $p['price']);
}
echo '</table>';
<table><tr><th>Товар</th><th>Цена</th></tr><tr><td>Мышь</td><td>450.50</td></tr><tr><td>Клавиатура</td><td>1200.00</td></tr></table>

Цель: форматированный вывод цен с двумя знаками после запятой. Ошибка: при несовпадении числа аргументов printf ошибка.

Пример 4. Вывод данных с использованием heredoc и вложенных переменных

Пример
$title = 'Статья о PHP';
$body = 'Это основное содержание.';
echo <<<HTML
<article>
  <h1>$title</h1>
  <p>$body</p>
</article>
HTML;
<article>
  <h1>Статья о PHP</h1>
  <p>Это основное содержание.</p>
</article>

Цель: удобный вывод многострочного HTML с подстановкой переменных. Ошибка: закрывающий идентификатор не должен содержать пробелов до перевода строки.

Пример 5. Вывод массива в JSON и последующая обработка JavaScript

Пример
$data = ['status' => 'ok', 'message' => 'Данные получены'];
header('Content-Type: application/json');
echo json_encode($data, JSON_UNESCAPED_UNICODE);
{"status":"ok","message":"Данные получены"}

Цель: передача данных через API. Проблема: без header браузер может отобразить JSON как текст. Также нужно экранировать Unicode для корректного отображения кириллицы.

Пример 6. Условный вывод с тернарным оператором и echo

Пример
$loggedIn = true;
echo 'Пользователь ' . ($loggedIn ? 'авторизован' : 'не авторизован') . '.';
Пользователь авторизован.

Цель: компактный вывод в зависимости от условия. Ошибка: при неправильном приоритете операторов может потребоваться скобки.

Пример 7. Вывод с помощью функции sprintf (возврат строки)

Пример
$template = 'Привет, %s! Сегодня %s.';
$result = sprintf($template, 'Анна', date('d.m.Y'));
echo $result;
Привет, Анна! Сегодня 10.04.2025.

Цель: сохранение форматированной строки для последующего вывода или записи. В отличие от printf, sprintf не выводит сразу, а возвращает строку.

Вывести данные на экран в PHP - comments

En
вывести данные php (php)