php echo print разница
Эхо или печать?
Вопрос: «Что быстрее — echo или print?» не перестаёт будоражить умы тех, кто считает себя профессиональным программистом на PHP. Руководство пользователя осторожно упоминает об имеющемся различии, но отсылает к статье стороннего авторства; та, в свою очередь, утверждает, что echo быстрее, но не приводит доказательств; трудно найти объективное сравнение, и всё это придаёт проблеме некий мистический ореол, на что клюют многие и многие.
Так не будем же оставаться в стороне и постараемся раз и навсегда разгадать эту загадку!
Поведенческое различие echo и print заключается в том, что последний может вести себя как функция (всегда возвращающая единицу); вследствие этого print можно использовать в контексте, например, тернарного оператора, что иногда может быть весьма привлекательным. Echo как функцию использовать нельзя, зато она может принимать несколько аргументов через запятую, при этом их нельзя брать в скобки; тогда как у print ровно один аргумент, и он может быть как в скобках, так и без.
Впрочем, об этих различиях информация как раз имеется в том же мануале, мы же имеем своей целью сравнить производительность и, я не побоюсь этого слова, быстродействие этих двух языковых конструкций.
Для проведения испытаний я составил стенд, на котором 1000 раз выводятся 1000 строк (длиной 32 символа каждая); при этом используется один из пяти методов:
Для каждого из методов испытания проводились 20 раз, при этом каждый раз засекалось время. Распределение результатов для всех методов оказалось нормальным, что позволяет брать среднюю величину как показатель быстродействия.
Были получены следующие величины:
Действительно, мы видим что print может оказаться немного медленнее echo (а может и не оказаться, что демонстрируют результаты по первым двум методам). В то же время использование echo с несколькими параметрами взамен конкатенации (и одинарными кавычками вместо двойных) даёт весьма ощутимый выигрыш в производительности.
Но постойте, на самом ли деле он такой ощутимый? Давайте подсчитаем. Разница между минимальным и максимальным временем составляет 406 мс на миллион операций. То есть, как сейчас модно говорить, 406 наносекунд на одну операцию.
Что это нам даёт в масштабах — ну, скажем, «ВКонтакте»? По данным LiveInternet, ежедневно на нём просматривается 500 млн. страниц.
Сколько раз для каждой страницы вызывается echo или print? Современные успешные сайты обязательно прибегают к сколько-нибудь высокому уровню абстракции логики от представления, используя шаблоны, MVC и другие страшные слова; в результате операция вывода вызывается один раз на страницу или, как максимум, один раз для каждого смыслового блока страницы. Предположим худший вариант и оценим количество таких блоков в 10 шт. на одну страницу.
Нетрудно подсчитать, что экономия серверного времени составит в лучшем случае до 200 секунд в день, или 0,23 %. Много это или мало? Решайте сами. Только сначала подумайте, не принесёт ли оптимизация одного SQL-запроса или кэширование одного файла в несколько раз больший прирост производительности.
А я скажу, сколько времени у меня заняло решение этого вопроса:
Блог Козлова Сергея
Верстка и WordPress
PHP: Отличия Echo и Print
Во время изучения PHP мы частом видим в примерах 2 способа вывода данных. Это языковые конструкции echo и print.
Да, это не функции, а именно языковые конструкции, как и написано в руководстве.
У меня, думаю как и у всех новичков в php, возникает вопрос: В чем же отличия между echo и print.
Количество строк для вывода
Обратимся к руководству по php:
echo — Выводит одну или более строк.
print — Выводит строку.
То есть если нам требуется вывести несколько строк или параметров, то проще это сделать с помощью echo. Если же надо вывести несколько аргументов с помощью print, то стоит использовать конкатенацию.
Пример для наглядности:
Возвращаемые значения
Если же заменить print на echo, то данная конструкция работать не будет, т.к. echo не является функцией.
Скорость загрузки
На картинке видно, что echo обрабатывается быстрее, чем print.
Разница обсуловлена тем, что функция print возвращает значение, о чем написано в пункте 2.
Были использованы 5 методов.
Испытания для каждого метода проводились по 20 раз, средние результаты вполне совпадают с ожидаемыми:
Строгой принципиальности нету. Но, как не крути, наиболее распространена конструкция Echo.
Print допустим в некоторых случаях, актуальность которого указан в пункте 2.
Если же вы, как и я, только начинаете учить php и решаете какую конструкцию использовать, то мой совет — использовать echo.
Drupal Русскоязычное сообщество
С первых часов знакомства с Drupal очень удивил тот факт, что повсеместно используется print, а не привычное мне еще с php3 echo, пришлось даже в мануал лезть разок, чтобы посмотреть отличия, но как-то не особенно беспокоило.
Комментарии
Инкремент неопределённой переменной в 9-10 раз медленнее, чем заранее инициализированной.
К своему стыду, не знал про пункт 19. Во всех остальных языках это значение вычисляется всего раз в циклах типа for.
Ну для эмульсионного слоя можно проследить его происхождение, вот интересно было бы откуда использование print пошло, если в принципе у него из преимуществ, только то, что можно использовать внутри выражений.
Хотя print знакомо, наверное, каждому программисту да и хоть чуть-чуть подкованному пользователю, хотя бы по принтеру, а для англоговорящих так прямое указание «печатать», в отличии от echo корнями идущим из консоли Unix, а туда,наверное, вообще из терминалов первых. Видимо это основным соображением было.
Вот тут еще хорошо написано
Эх когда я после программирования на Дельфи впервые столкнулся с веб разработкой то меня всё повергло просто в шок! Только щас оклимался когда уже вьехал. А как я офигивал от друпала видя что тут почти пофигу всем на скорость обработки.
Так что эти правила (кстати которые местами очень сомнительные) можно засунуть куда подальше. Это всё просто мелочи по сравнению с расходом ресурсов самой средой.
Сайт автора статьи уязвим для банальнейшей SQL-инъекции, что уж говорить о компетентности автора?
Следовательно, о самих советах.
Для новичков от них вреда больше, чем пользы.
Уязвимости сайта автора не могут говорить о его компетенции, возможно просто на скорую руку собрано и оставлены на потом какие-либо моменты.
🙂 Эх когда я после программирования на Дельфи впервые столкнулся с веб разработкой то меня всё повергло просто в шок!
Только вот переписывать всё после каждого обновления.
вспомнилось:
в былые времена программеры из РТСБ пытались нам, колхозным писакам, доказать преимущества FOX’a перед CLIPPER’ом.
Простая демонстрация поиска товара в базе из более чем 30 000 записей расставила все точки над «йо».
А еще мы обновления этих баз тащили мопедами на 2400MNP5.
Объясните разницу между echo и print
Объясните разницу между echo и print в php пожалуйста. Я всегда использовал echo при написании кода, скажите если я что-то делаю не так(где надо использовать print а не echo )
1 ответ 1
Поведенческое различие echo и print заключается в том, что последний может вести себя как функция (всегда возвращающая единицу); вследствие этого print можно использовать в контексте, например, тернарного оператора, что иногда может быть весьма привлекательным. Echo как функцию использовать нельзя, зато она может принимать несколько аргументов через запятую, при этом их нельзя брать в скобки; тогда как у print ровно один аргумент, и он может быть как в скобках, так и без.
см. полную статью статью ТУТ
Всё ещё ищете ответ? Посмотрите другие вопросы с метками php функции или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.9.17.40238
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Разница между Echo и Print в PHP
Содержание:
Оба «echo» и «print» не являются реальными функциями в PHP, скорее они являются языковыми конструкциями.
Функция «echo» в основном используется для представления или команды для выходной строки в PHP. В отличие от других функций вывода в разных языках, эта функция на самом деле не ведет себя как функция, а является реальной конструкцией, которая ведет себя как функция. «Эхо» не требует заключенных в скобки; следовательно, параметры команды передаются без скобок. Он также имеет сокращенный синтаксис, который следует сразу за открывающим тегом со знаком равенства.
Синтаксис «echo» выглядит следующим образом:
Функция «print» может выполняться с круглыми скобками или без них. В отличие от «echo», даже это не чистая функция, а конструкция в языке PHP. «Print» возвращает значение вместе с выполненным выводом. Выполняя функцию «print», программист может передавать только один аргумент.
Синтаксис «print» имеет следующий вид:
Сравнение между Echo и Print в PHP:
«Эхо» в PHP
«Печатать» на PHP
Это тип выходной строки.
Это также тип выходной строки.
Это не написано в скобках.
Это может или не может быть написано с круглыми скобками.
Эхо может выводить одну или несколько строк.
Print может выводить только одну строку и всегда возвращает 1.
«Эхо» работает быстрее, чем «Печать».
Функция «печать» по сравнению с «эхо» работает медленнее.