echo
(PHP 4, PHP 5, PHP 7)
echo — Выводит одну или более строк
Описание
$arg
, string ...$args
) : voidВыводит все аргументы. Символ конца строки не добавляется.
На самом деле, echo
- это не функция
(это языковая конструкция), поэтому заключать аргументы в скобки необязательно.
echo
(в отличие от других языковых
конструкций) не ведет себя как функция, поэтому не всегда может быть использована
в контексте функции. Вдобавок, если вы хотите передать более одного аргумента
в echo
, эти аргументы нельзя заключать в скобки.
echo
имеет также краткую форму, представляющую
собой знак равенства, следующий непосредственно за открывающим
тегом. До PHP 5.4.0 этот сокращенный синтаксис работал только с включенном параметром
конфигурации short_open_tag.
У меня есть <?=$foo?> foo.
Единственное отличие от print
в том, что echo
принимает
список аргументов и ничего не возвращает.
Список параметров
-
arg
-
Параметр для вывода.
-
args
-
Возвращаемые значения
Эта функция не возвращает значения после выполнения.
Примеры
Пример #1 Примеры использования echo
<?php
echo "Привет мир!";
// Вместо конкатенации можно предать список аргументов, которые будут объединены
// в одну строку и обработаны как один аргумент
echo 'Эта ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.', chr(10);
echo 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.' . "\n";
// Следующая строка неверна, так как echo не является функцией
($some_var) ? echo 'true' : echo 'false';
// Но это можно записать по-другому
($some_var) ? print 'true' : print 'false'; // print также является конструкцией языка,
// но ведет себя как функция, поэтому она
// может быть использована в этом контексте.
echo $some_var ? 'true': 'false'; // echo вынесен за пределы выражения
?>
Примечания
Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.
Преимущество передачи нескольких аргументов вместо конкатенации в echo касается приоритета оператора "точка". Если передавать несколько аргументов, то скобки в выражениях не нужны:
<?php
echo "Сумма: ", 1 + 2;
echo "Привет, ", isset($name) ? $name : "незнакомец", "!";
В случае конкатенации оператор "точка" будет иметь тот же самый приоритет, что и сложение, но более высокий, чем тернарный оператор, поэтому необходимо использовать скобки:
<?php
echo 'Сумма: ' . (1 + 2);
echo 'Привет, ' . (isset($name) ? $name : 'незнакомец') . '!';
Смотрите также
- print - Выводит строку
- printf() - Выводит отформатированную строку
- flush() - Сброс системного буфера вывода
- Heredoc-синтаксис