Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

    I have <?=$foo?> foo.

vs

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

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

Ответ 2

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

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

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

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

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

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

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

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

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

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

Ответ 3

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

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

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

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

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

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

Ответ 4

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

$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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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

Ответ 8

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

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