Справочники, инструменты, документация

PHP: Echo или Print

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

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

Давайте же опишем разницу между ними, и поймем, когда нужно использовать echo или print.

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

$var = 5;
( $var > 0 ) ? print 'Yes' : print 'No';

Если в этом примере print заменить echo, то скрипт работать не будет, так как echo - не функция. Данное выражение можно записать и с конструкцией echo:

echo ( $var > 0 ) ? 'Yes' : 'No';

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

Второе, print и echo различаются по переданным параметрам. С помощью функции print можно передавать только один параметр, в то время как echo принимает их огромное количество. Это можно понять на следующем примере:

echo 'Данная ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.';
echo 'Данная ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.';
// в print работает только так:
print 'Данная ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.';

Лучше, конечно, для вывода информации использовать echo по умолчанию, и print, где это необходимо.