Очень часто всплывает вопрос, в чем отличие между print и echo в PHP? Поняв разницу, можно использовать в каждом конкретном случае наиболее применимую конструкцию.
1) print возвращает всегда единицу (1), echo не возвращает ничего (void). Так как echo не возвращает никаких значений, то и выполняется быстрее, чем print (ровно на величину ресурсов, требуемых на возврат значения. Величина незначительная, но все же);
2) как следствие, print можно использовать в выражениях, а echo - нет;
3) echo - не функция, а языковая конструкция. Поэтому использовать скобки необязательно. Более того, если требуется передать несколько аргументов в echo, то скобки использовать нельзя, нужно просто указывать аргументы через запятую;
4) print также можно использовать без скобок (это также «ненастоящая» функция, языковая конструкция), но передать можно только один аргумент;
5) у echo есть сокращенная форма записи: <?=$foo?>;
Из вышесказанного следует, что в большинстве случаев, если надо что-то вывести на экран или в буфер, выгоднее использовать echo. А теперь, попробуйте угадать, что выведет следующий код:
echo 1 . print(2), 3;
Будет выведено 2113.