Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чем отличается echo() от print()?
 
 автор: tAleks   (14.06.2006 в 13:16)   письмо автору
 
 

Чем отличается echo() от print()?

   
 
 автор: margol   (14.06.2006 в 13:24)   письмо автору
 
   для: tAleks   (14.06.2006 в 13:16)
 

Функция echo — Выводит одну или более строк
Синтаксис
void echo (string arg1 [, string argn...])
Выводит все аргументы
-----------------------------------------------------------
Функция print — Выводит строку
Синтаксис
int print (string arg)
Выводит arg. Всегда возвращает 1.

   
 
 автор: cheops   (14.06.2006 в 13:45)   письмо автору
 
   для: tAleks   (14.06.2006 в 13:16)
 

echo - это конструкция языка вроде for, а print() - это функция (поэтому-то она и медленнее). Так можно записать
<?php 
  
echo "howdy""partner"
?>

Через запятую, а с print() это не пройдёт. В тоже время print() возвращает значание 1 в случае успеха и 0 в случае неудачи
<?php 
  $ret 
= print "howdy"
  echo 
"<br>$ret"
?>

Такой синтаксис уже невозможен для echo.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=6634

   
 
 автор: JIEXA   (14.06.2006 в 23:28)   письмо автору
 
   для: cheops   (14.06.2006 в 13:45)
 

> а print() - это функция (поэтому-то она и медленнее). Так можно записать
и намного print медленее echo???

   
 
 автор: cheops   (14.06.2006 в 23:40)   письмо автору
 
   для: JIEXA   (14.06.2006 в 23:28)
 

Нет, по крайней мере не на столько, чтобы об этом беспокоиться...

   
 
 автор: Саня   (14.06.2006 в 23:59)   письмо автору
 
   для: JIEXA   (14.06.2006 в 23:28)
 

Полевые испытания показали:
print "string"; ~0.000157 сек
echo "string"; ~0.000029 сек

echo почти в пять раз быстрее.

   
 
 автор: cheops   (15.06.2006 в 12:05)   письмо автору
 
   для: Саня   (14.06.2006 в 23:59)
 

Лучше бы через цикл пропустить и несколько раз перезагрузить страницу...

   
 
 автор: Саня   (16.06.2006 в 15:38)   письмо автору
882 байт
 
   для: cheops   (15.06.2006 в 12:05)
 

Хм. Любопытные вышли результаты.
Скрипт со строками:
for ($i = 0; $i < 100000; $i++) print "string";
for ($i = 0; $i < 100000; $i++) echo "string";
выполнялся 200 раз.

Итого:
Для print ~10.633287 сек
Для echo ~54.362425 сек

P. S.
Если кому интересно - проверочный скрипт в аттаче.

   
 
 автор: valenok   (16.06.2006 в 16:24)   письмо автору
 
   для: Саня   (16.06.2006 в 15:38)
 


<?php
$t
=time();
for(
$i=0;$i<200000;$i++){print('&nbsp;');}
$t2=time()-$t;
echo 
"<Br>".$t2;

$t=time();
for(
$i=0;$i<200000;$i++){echo('&nbsp;');}
$t2=time()-$t;
echo 
"<Br>".$t2;

У обоих по 11 сек

   
 
 автор: valenok   (16.06.2006 в 16:31)   письмо автору
 
   для: valenok   (16.06.2006 в 16:24)
 

миллион раз - разница 4 сек в пользу принта.

   
 
 автор: cheops   (17.06.2006 в 00:55)   письмо автору
 
   для: valenok   (16.06.2006 в 16:24)
 

Тесты лучше в отдельных скриптах запускать (и первый результат всегда выкидывать - он будет медленее, чем все последующие).

   
 
 автор: Shorr Kan   (15.06.2006 в 09:15)   письмо автору
 
   для: cheops   (14.06.2006 в 13:45)
 

А "=" - это print или echo (<?=$a;?>) ? Или это третья сила?

   
 
 автор: cheops   (15.06.2006 в 12:06)   письмо автору
 
   для: Shorr Kan   (15.06.2006 в 09:15)
 

Это echo, механизм по крайней мере тот же...

   
 
 автор: Саня   (14.06.2006 в 19:46)   письмо автору
 
   для: tAleks   (14.06.2006 в 13:16)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=13471

   
 
 автор: rfvbkk   (19.06.2006 в 01:11)   письмо автору
 
   для: Саня   (14.06.2006 в 19:46)
 


<?php 
$t
=time(); 
for(
$i=0;$i<200000;$i++){print('&nbsp;');} 
$t2=time()-$t
echo 
"<Br>".$t2

$t=time(); 
for(
$i=0;$i<200000;$i++){echo('&nbsp;');} 
$t2=time()-$t
echo 
"<Br>".$t2


а если это проверить, по отдельности или echo и print поменять местами, думаю результаты намного разойдуться. И как я слышал с for в PHP проверять дело неблагодарное.

   
 
 автор: valenok   (19.06.2006 в 07:48)   письмо автору
 
   для: rfvbkk   (19.06.2006 в 01:11)
 

Я проверял и с whilом и по отдельности.
Разница в скорости для миллиона раз 2-3 сек.

Не сособо значительно.
Только если вы собираетесь столько выводить...

Разница не только в скорости.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования