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 выглядят похоже, но между ними есть различия:
echo | print | |
|---|---|---|
| Тип | языковая конструкция | языковая конструкция |
| Возвращаемое значение | нет (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, а не значение переменной.