PHP echo print какая разница - отличия

Отличия

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

Что быстрее

Из вышесказанного а также проведённых товарищем экспериментов следует, что в большинстве случаев, если надо что-то вывести на экран или в буфер, выгоднее использовать echo (выгоднее чем print). При этом (по данным тех же исследований) экономия составляет 0,23 %.

Пример

Попробуйте угадать, что выведет следующий код:

echo 1 . print(2), 3;

А теперь, попробуйте угадать, что выведет следующий код:

Будет выведено

2113

- т.к. "порядок действий" тут таков:

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

    ;

  4. echo выводит 3-ку

Источники: