Print или Echo?
При написании php-кода, постоянно возникает необходимость в выводе наработанной информации. Как правило для этого используются 2 языковые конструкции: print() и echo()
Но при этом, не каждый разбирался, в чем различие между print и echo. И на русском языке о них написано чрезвычайно мало. А различий между ними 2, но со всеми вытекающими:
- Во-первых, print() ведет себя как функция, которая всегда возвращает значение 1(<?php $a=print('test');/* $a=1; */ ?>). Конструкция echo, которая не является функцией, ничего не возвращает, вследствие чего выполняется быстрее. Ненамного, но все-же! Где же может быть применено это чудесное свойство print? А применяться он может в условных конструкциях с тернарным оператором:
На первый взгляд, использование подобных конструкций кому-то может показаться бессмыслицей, но, если пораскинуть мозгами, можно найти этой особенности много полезных применений, так что на вооружение это стоит взять по-любому.<?php ($some_var) ? print 'true' : print 'false'; // Конструкция валидна, т.к print() - функция ($some_var) ? echo 'true' : echo 'false'; // Работать не будет, так как echo - не функция echo $some_var ? 'true' : 'false'; // Валидно, т.к echo вынесен за пределы выражения ?> - Во-вторых, print и echo различаются по передаваемым параметрам. Функции print можно передавать только один параметр, в то время как echo принимает их неограниченное количество. Это можно понять на следующем примере:
<?php // в echo можно делать так: echo 'Эта ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.', chr(10); // а можно и так: echo 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.' . "\n"; // в print получится только так: print 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.' . "\n"; ?>
Лично для себя я уже решил, что для вывода информации я буду использовать echo по умолчанию, и print, где это необходимо.
Информация взята из следующих источников:
- Статьи схожей тематики:

Комментарии(7):
rss-лентаДобавлено: 2009-11-29 23:23:18, DreamtasteR
Добавлено: 2010-01-24 23:12:40, Евгений
Добавлено: 2010-02-04 21:57:38, Алексей
Добавлено: 2010-07-07 15:30:56, Евгений
Добавлено: 2010-07-21 19:47:50, Дмитрий
Добавлено: 2010-08-23 12:12:33, zic
Добавлено: 2010-08-26 16:43:19, Dj Draft