W3docs

echo()

Ключевое слово «echo» в PHP выводит одну или несколько строк. Разбираем синтаксис, кавычки, короткий тег и отличие от print.

Оператор echo в PHP

echo — наиболее распространённый способ вывести данные из PHP-скрипта на страницу. Это языковая конструкция, а не функция, поэтому она не возвращает значения и не требует скобок при вызове. Вы будете использовать echo постоянно: для вывода текста, значений переменных и формирования HTML.

На этой странице рассматриваются синтаксис, поведение одинарных и двойных кавычек (частая ловушка для начинающих), короткий тег <?= ?>, а также отличие echo от print.

Синтаксис

echo expression;
echo expression1, expression2, ...;

Поскольку echo является языковой конструкцией, скобки при вызове не нужны:

echo "Hello";        // correct
echo("Hello");       // also works for a SINGLE argument
echo("a", "b");      // PARSE ERROR — parentheses can't wrap multiple args
echo "a", "b";       // correct way to pass multiple arguments

Несколько значений передаются через запятую — это немного быстрее конкатенации через ., так как не создаётся промежуточная строка. Значения выводятся подряд, без разделителя.

Примеры

Рассмотрим практические примеры использования ключевого слова echo:

Примеры использования PHP echo

<?php

// Example 1: Comma-separated arguments (native syntax)
echo "Hello World!", PHP_EOL;

// Output: Hello World!

// Example 2: String concatenation
$myName = "John";
$myAge = 30;
echo "My name is " . $myName . " and I am " . $myAge . " years old.";

// Output: My name is John and I am 30 years old.

// Example 3: Variables without quotes (comma-separated)
$greeting = "Hello";
$name = "World";
echo $greeting, " ", $name, "!";

// Output: Hello World!

Одинарные и двойные кавычки

Выбор стиля кавычек влияет на обработку переменных, поэтому важно разобраться в этом сразу. В строках в двойных кавычках PHP интерпретирует переменные и управляющие последовательности. В строках в одинарных кавычках этого не происходит — текст выводится буквально.

<?php

$name = "World";

echo "Hello $name\n";   // Hello World  (variable is interpolated)
echo 'Hello $name\n';   // Hello $name\n  (printed verbatim, no newline)

Используйте двойные кавычки, когда нужна интерполяция переменных; одинарные (чуть быстрее) — для простого литерального текста. Полные правила, включая синтаксис фигурных скобок вроде "{$user['name']}", описаны в разделе PHP Strings.

Вывод HTML

Одна из самых распространённых задач echo — вывод HTML. Переменные можно встраивать прямо в разметку:

<?php

$title = "Welcome";
echo "<h1>$title</h1>";
// Output: <h1>Welcome</h1>

Для больших блоков HTML обычно удобнее выйти из PHP-режима (?> ... <?php), чем выводить каждую строку через echo.

Короткий тег echo

Сокращённый синтаксис <?= ... ?> полностью эквивалентен <?php echo ... ?>. Он включён по умолчанию во всех поддерживаемых версиях PHP и идеально подходит для шаблонов:

<p>Hello, <?= $name ?>!</p>

Это рекомендуемый способ вывести одно значение внутри файлов, преимущественно содержащих HTML.

echo vs. print

echo и print выглядят похоже, но между ними есть различия:

echoprint
Типязыковая конструкцияязыковая конструкция
Возвращаемое значениенет (void)всегда 1
Несколько аргументовда (echo $a, $b;)нет
Использование в выражениинетда (поскольку возвращает значение)

Так как print возвращает 1, его можно использовать внутри выражения: $ok = print "hi";. echo — нельзя. На практике для общего вывода предпочтительнее echo. Подробности — в посвящённом сравнении echo vs print и справочнике по print.

Типичные ошибки

  • Нельзя использовать скобки с несколькими аргументами. echo("a", "b"); вызовет ошибку синтаксиса; используйте echo "a", "b";.
  • echo ничего не возвращает. Запись $x = echo "hi"; недопустима. Если нужно значение, используйте print (или sprintf()).
  • Одинарные кавычки не интерполируют переменные. echo 'Total: $price'; выведет буквальный текст $price, а не значение переменной.

Практика

Практика
Что делает оператор 'echo' в PHP?
Что делает оператор 'echo' в PHP?
Was this page helpful?