CMS-AdminStation

(Skype отдела продаж)

CMS AdminStation
Профессиональная система управления сайтами CMS «AdminStation» — это программный комплекс, позволяющий создавать веб-сайты практически любого уровня сложности с максимальной экономией времени и управлять созданным сайтом, без специальных знаний веб-разработчика.
Логин: Пароль:

print или echo?

Юмор | Программирование | Мысли / Личное

Блог Rem-x В этой записи рассмотрим мифы и легенды о print и echo в языке php

 

В интернете уже долгое время происходят споры между программистами по поводу использования для вывода конструкцию print или echo. Сразу напишу то, что я использую print как свой почерк в коде и люди которые говорят: «Rem-x говорит, что его скрипты работают быстрее из-за того, что он использует print», это полный бред, т.к. мой код не основан на микрооптимизации. Так же в этой записи, я не буду расписывать все тонкости и нюансы о данных конструкциях, а рассмотрим только быстродействие.

В общем, проводил я в своё время множество проб и экспериментов по данной теме, но никак времени не хватало (да и не где было) поделиться результатами. Разница в скорости выполнения настолько ничтожна, что её практически невозможно измерить. Колеблется она всего в несколько наносекунд и догадки о быстродействии можно излагать только из логических соображений. Во-первых: если писать код с учетом выполнения скрипта, то при каждом выполнении на сервере, оно выдает различные результаты, а во-вторых: случайно обнаружил такую особенность, если код размещен выше в исходнике, то он выполняется дольше, чем код ниже. Например:

Листинг 1. (Выполняется быстрее конструкция echo)

<?php
function microtime_float() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
print "AdminStation";
printf ("time: %.7f sec<br />",microtime_float()-$time_start);
$time_start2 = microtime_float();
echo "AdminStation";
printf ("time: %.7f sec<br />",microtime_float()-$time_start2);
?>

Листинг 2. (Выполняется быстрее конструкция print)

<?php
function microtime_float() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
echo "AdminStation";
printf ("time: %.7f sec<br />",microtime_float()-$time_start);
$time_start2 = microtime_float();
print "AdminStation";
printf ("time: %.7f sec<br />",microtime_float()-$time_start2);
?>

В офисе с сотрудниками поделился данными наблюдениями, но четких ответов на этот вопрос ни у кого не было. Самое интересное объяснение дал мой программист Саша. Он сказал: «Что это как человек, утром просыпается и начинает раскачиваться». Но это конечно юмор, но как это связано в программировании пока не понял, но и особо не вникал в эти подробности.

Если идти по пути логики, то print ведет себя как функция (но не является настоящей функцией), возвращая значение 1, конструкция echo не является функцией и ничего не возвращает, т.е. на выполнение echo, логически, уходит меньше времени.

Что использовать: «print или echo»? Однозначного ответа на этот вопрос дать нельзя. Мой совет: «Используйте то, что ближе к вам». Echo - 4 символа, print - 5 символов, т.е. echo набирается на 20% быстрее, чем print :) А если возможно, лучше вывод вообще делать за пределами тегов: <?php ?>.

А теперь юмор к теме: «В Вилларибо тестируют, что быстрее в php: print или echo, а в Виллобаджо давно пропивают только что выполненный проект».

Дата публикации: 10.11.2011

 

Комментарии пользователей:

К данной записи ещё нет комментариев

Для добавления комментария, вам необходимо зарегистрироваться!