Echo: примеры (PHP)

Конструкция echo в PHP: от основ до продвинутого использования
Раздел: Вывод данных
echo(string ...$expressions): void

Основы функции echo

Конструкция echo в PHP применяется для вывода одной или нескольких строк. Она не является функцией в полном смысле, а языковой конструкцией, поэтому использование скобок необязательно. Ее основное назначение — генерация вывода, который отправляется в браузер или иной клиент.

Когда используется

echo используется повсеместно для вывода HTML-разметки, текста, значений переменных и результатов выражений. Она работает на этапе выполнения скрипта и является одним из базовых инструментов для создания динамического контента.

Аргументы

Конструкция принимает один или несколько аргументов, перечисленных через запятую. Каждый аргумент может быть строкой, переменной, константой или выражением, которое преобразуется в строку. В отличие от функций, echo не возвращает какого-либо значения.

Короткие примеры

Вывод строки
<?php
echo "Привет, мир!";
?>
Привет, мир!
Вывод нескольких аргументов
<?php
$name = "Анна";
echo "Привет, ", $name, "! Твой баланс: ", 100.50;
?>
Привет, Анна! Твой баланс: 100.5
Использование с HTML
<?php
$color = "red";
echo "<p style='color: {$color}'>Этот текст красный.</p>";
?>

Этот текст красный.

Вывод массива с преобразованием
<?php
$arr = [1, 2, 3];
echo implode("-", $arr);
?>
1-2-3

Аналоги в PHP

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

<?php
$result = print "Текст"; // Выведет "Текст"
echo $result; // Выведет 1
?>

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

<?php
printf("Сумма: %.2f рублей", 123.456);
?>
Сумма: 123.46 рублей
print_r и var_dump

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

Конструкции в иных языках

Python: print()

В Python это функция, которая выводит объекты в стандартный поток вывода. Отличается наличием параметров, таких как sep для разделителя и end для завершающего символа.

print("Привет", "мир", sep="-", end="!\n")
Привет-мир!
JavaScript: console.log() и document.write()

console.log() выводит сообщения в консоль браузера, а document.write() записывает HTML в документ, но его использование считается устаревшим.

console.log("Сообщение", 123);
// Вывод в консоль: Сообщение 123
MySQL: SELECT

В SQL команда SELECT используется для возврата данных из базы, которые могут быть выведены как результат запроса. Ее задача существенно отличается от echo.

SELECT 'Привет, SQL' AS greeting;
+--------------+
| greeting     |
+--------------+
| Привет, SQL  |
+--------------+

Распространенные ошибки

Прямой вывод массива

Попытка вывести массив напрямую приводит к ошибке типа Notice и сообщению "Array".

<?php
$array = [1, 2];
echo $array;
?>
Notice: Array to string conversion in ...
Array
Использование несуществующей переменной

Если переменная не определена, в зависимости от настроек, будет выведена ошибка.

<?php
echo $undefinedVar;
?>
Warning: Undefined variable $undefinedVar in ...
Некорректная интерполяция в строках

Интерполяция сложных выражений внутри двойных кавычек требует оборачивания в фигурные скобки.

<?php
$num = 5;
echo "Результат: $num + 2"; // Не будет вычислено
?>
Результат: 5 + 2

Изменения в новых версиях PHP

В PHP 8.0 и 8.1 для конструкции echo значительных изменений не было. Однако в PHP 8.0 общая система вывода теперь более стабильна благодаря исправлениям в обработке ошибок. В PHP 8.1 улучшена совместимость типов, но это не затрагивает напрямую работу echo.

Расширенные варианты применения

Вывод с использованием тернарного оператора
Пример php
<?php
$isAdmin = true;
echo $isAdmin ? "Доступ разрешен" : "Доступ запрещен";
?>
Доступ разрешен
Использование в комбинации с буферизацией вывода
Пример php
<?php
ob_start();
echo "Этот текст попадает в буфер.";
$content = ob_get_clean();
echo "Буфер очищен, а его содержимое: " . $content;
?>
Буфер очищен, а его содержимое: Этот текст попадает в буфер.
Вывод данных из объекта
Пример php
<?php
class User {
    public $name = "Мария";
}
$user = new User();
echo "Имя пользователя: {$user->name}";
?>
Имя пользователя: Мария
Вывод с коротким тегом
Пример php
<?php
$count = 10;
?>
Количество: <?= $count ?> шт.
Количество: 10 шт.
Вывод JSON с предварительной обработкой
Пример php
<?php
$data = ['id' => 1, 'status' => 'active'];
echo json_encode($data, JSON_UNESCAPED_UNICODE);
?>
{"id":1,"status":"active"}

PHP echo function comments

En
Echo Output one or more strings