PHP echo print какая разница - отличия
Primary tabs
Отличия
- print возвращает всегда единицу (1), echo не возвращает ничего (void). Так как echo не возвращает никаких значений, то и выполняется быстрее, чем print (ровно на величину ресурсов, требуемых на возврат значения. Величина незначительная, но все же);
- как следствие, print можно использовать в выражениях, а echo - нет;
- echo - не функция, а языковая конструкция. Поэтому использовать скобки необязательно. Более того, если требуется передать несколько аргументов в echo, то скобки использовать нельзя, нужно просто указывать аргументы через запятую;
- print также можно использовать без скобок (это также «ненастоящая» функция, языковая конструкция), но передать можно только один аргумент;
- у echo есть сокращенная форма записи:
<?=$foo?>
Что быстрее
Из вышесказанного а также проведённых товарищем экспериментов следует, что в большинстве случаев, если надо что-то вывести на экран или в буфер, выгоднее использовать echo (выгоднее чем print). При этом (по данным тех же исследований) экономия составляет 0,23 %.
Пример
Попробуйте угадать, что выведет следующий код:
echo 1 . print(2), 3;
А теперь, попробуйте угадать, что выведет следующий код:
Будет выведено
2113
- т.к. "порядок действий" тут таков:
- начинается конкатенация параметров для echo, встречается вызов функции print
- print печатает свой аргумент и возвращает единицу, которая будет использована в конкатенации для echo
- единица от print конкатенируется с указанной до того литеральной единицей т.е. выполняется код эквивалентный:
echo 1 . 1
;
- echo выводит 3-ку
Источники:
- Log in to post comments
- 4886 reads