Должен ли я использовать эхо или печатать в сценариях php?

Какое утверждение следует использовать в php-скриптах? Эхо или печать? Что быстрее и в основном используется? Заранее спасибо.

Related of "Должен ли я использовать эхо или печатать в сценариях php?"

Предположительно, echo быстрее, но любой из них будет работать нормально.

Echo также предлагает синтаксис ярлыков при встраивании php в HTML. т.е.

  I have <?=$foo?> foo. 

против

  I have <?php echo $foo;?> foo. 

См. http://us2.php.net/manual/en/function.echo.php

И эхо, и печать – это языковые конструкции PHP (а не функции). Что лучше зависит от ваших приоритетов. Есть три возможных приоритета, которые я хотел бы рассмотреть: 1. Вы упомянули скорость; 2. Вы упомянули широкое использование; 3. Я бы добавил гибкость.

  1. Скорость: как многие другие упомянули, эхо немного быстрее (особенно при использовании синтаксиса с несколькими аргументами, с элементами, разделенными запятыми), но разница настолько незначительна, что это имеет значение только в коде с тысячами петель, где скорость действительно, действительно вопросы. См. http://www.phpbench.com для тестов.

  2. Широкое использование: кажется, что из традиций эхо более популярно используется для PHP, чем для печати. Это довольно анекдотично, но я думаю, что вы столкнетесь с тем же результатом, когда будете читать PHP-код из самых разных источников.

  3. Гибкость: я считаю, что печать, безусловно, более гибкая, чем эхо в выражении кода. Echo имеет только одно «преимущество» над печатью: вы можете использовать следующий синтаксис: echo $arg1, $arg2, ... с запятыми, чтобы перечислять ваши аргументы; print не поддерживает синтаксис запятой. Однако вы можете заменить запятые на периоды (.) И получить точно такой же результат как для эха, так и для печати: print $arg1. $arg2. ... print $arg1. $arg2. ... print $arg1. $arg2. ... Таким образом, этот синтаксис обеспечивает нулевое преимущество в гибкости и выражении. Это небольшое преимущество, потому что это приводит к более быстрому коду, как я упоминал в № 1, но в 99% кода это, вероятно, не имеет значения.

    Напротив, одно, что печать может сделать, что эхо не может сделать, это вернуть значение, и поэтому он может полностью действовать как функция. С одной стороны, он ограничен, потому что print всегда возвращает значение 1, независимо от того, что. С другой стороны, вы можете сделать это с помощью печати, но не с эхом:

    <?php ($age >= 18) ? print('Can vote.') : print('Cannot vote.'); ?>

    (Пример, взятый из PHP и MySQL Мураха 2010, стр. 227)

    Таким образом, печать может выражать практически все ту же гибкость в коде, что и echo, но echo имеет один важный прецедент, когда он не может делать то, что может сделать печать: print может действовать как функция в контекстах, где это может быть полезно. (Я говорю «действовать как функция», потому что это не функция, это языковая конструкция, как и эхо.)

    Что касается синтаксиса короткого эха <?=$foo?> ( <?php=$foo?> Также работает с PHP 5.4: http://us2.php.net/manual/en/function.echo.php ), его можно было бы назвать сокращением для «эха», но вы могли бы также назвать его сокращением для «печати», потому что это просто другая языковая конструкция. Нет логической основы для того, чтобы называть это «преимуществом» эха над печатью, как утверждают некоторые люди, поскольку эта конструкция не является ни эхом, ни печатью – это альтернативная конструкция, которая делает то же самое, что и то и другое.

Для меня лично я предпочитаю выбирать один и придерживаться его всегда. Я лично предпочитаю печатать из-за его немного превосходящего преимущества в гибкости кодирования, и потому что «печать» звучит более интуитивно для меня – это чисто субъективно. Мне все равно, что эхо, вероятно, более широко используется, потому что печать одинаково хорошо понятна, если другим нужно читать мой код. Для 1% кода, где скорость печати действительно, действительно имеет значение, тогда я буду использовать эхо.

Это не влияет на способ отображения текста, но оба имеют другое поведение …

Например, print возвращает значение ( true или false ) в зависимости от того, может или не может отображать текст для печати; вместо этого echo просто дает и продолжается.

Это можно сделать так:

 if (print ($variable)) { //do something } 

Это бессмысленно:

 if (echo $variable) { //do something } 

Я сам тестировал это:

 $StartTime=microtime(1); echo '<div style="display:none">'; for($i=0;$i<100000;$i++) echo "Hello world!<br />"; echo "</div>Echo: ".round(microtime(1)-$StartTime,5); $StartTime=microtime(1); echo '<div style="display:none">'; for($i=0;$i<100000;$i++) print "Hello world!<br />"; echo "</div><br />Print: ".round(microtime(1)-$StartTime,5); 

эхо около .09s
печать около .3s до .5s

эхо быстрее. Кроме того, echo () может печатать более одного аргумента, print () может печатать только один аргумент.

echo() быстрее, чем print() в каждом случае использования, о котором я могу думать – не много, но он складывается.

Вот некоторые доказательства бенчмаркинга: http://www.phpbench.com прокрутите вниз до "echo vs. print"

ИМО это не вопрос скорости. Если бы я разрабатывал приложение, где разница в скорости между эхом и печатью имела какое-либо значение, я бы счел это очень ясным признаком использования другого (не интерпретируемого) языка программирования, чем PHP.

Но пока вы придерживаетесь PHP, это – IMvHO – просто вопрос вкуса. И, кстати, я предпочитаю эхо, но только потому, что это означает, что вы набираете меньше;)

Самый быстрый способ повторить несколько строк:

 echo "string","string","string"; 

Это даже не нужно выполнять конкатенацию строки, она просто перекликается с одной строкой за другой. В print() нет ничего плохого, и я думаю, что в конце дня, если вы не эхом отдаете миллионы строк, вы бы не заметили разницы.