На заметку: print всегда будет возвращать 1 как значение, echo ничего не даст. Я думаю, что это может быть полезно в некоторых случаях.
Барт
Что это за случай?
Джаярджо
Я тоже удивился этому! Хороший вопрос!
Андрей
Ответы:
25
echoтолько быстрее в академической среде. Разница очень незначительная. Быстрый тест, который я только что сделал: время выборки одной строки из таблицы с более чем 2000 узлами составляет 1 единицу.
Чтобы получить улучшение на 1 единицу, мне нужно заменить около 3.700.000 (более 3 миллионов) printоператоров на echo. Другими словами, если вы хотите улучшить производительность, вряд ли стоит начинать.
То, что printможет быть использовано в более широком диапазоне случаев echo, первое имеет некоторые преимущества. Это оставляет вам три варианта:
Всегда используйте print
Используйте, echoгде это возможно, и используйтеprint
Используйте echoвсегда и рефакторинг вашего кода, если echoне может быть использован, чтобы использовать его
Друпал дефолт по первому.
Чтобы ответить на ваш актуальный вопрос о том, почему это было выбрано: это не так. Это просто выросло таким образом.
Не могли бы вы привести пример, когда эхо не может быть использовано? Просто я не могу себе это представить в данный момент.
Джаярджо
6
Наиболее очевидным является if (! print some_method() ) {print some_other_method()}. Так как print возвращает TRUE, если оно действительно что-то напечатало. Эхо ничего не возвращает, поэтому тоже быстрее. Другой пример, который вы увидите, находится return print $somevalueв конце метода возврата статуса.
Ответы:
echo
только быстрее в академической среде. Разница очень незначительная. Быстрый тест, который я только что сделал: время выборки одной строки из таблицы с более чем 2000 узлами составляет 1 единицу.Чтобы получить улучшение на 1 единицу, мне нужно заменить около 3.700.000 (более 3 миллионов)
print
операторов наecho
. Другими словами, если вы хотите улучшить производительность, вряд ли стоит начинать.То, что
print
может быть использовано в более широком диапазоне случаевecho
, первое имеет некоторые преимущества. Это оставляет вам три варианта:print
echo
где это возможно, и используйтеprint
echo
всегда и рефакторинг вашего кода, еслиecho
не может быть использован, чтобы использовать егоДрупал дефолт по первому.
Чтобы ответить на ваш актуальный вопрос о том, почему это было выбрано: это не так. Это просто выросло таким образом.
источник
if (! print some_method() ) {print some_other_method()}
. Так как print возвращает TRUE, если оно действительно что-то напечатало. Эхо ничего не возвращает, поэтому тоже быстрее. Другой пример, который вы увидите, находитсяreturn print $somevalue
в конце метода возврата статуса.