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

Форум PHP

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

 

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

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

тема: Слеивать строки или вкладывать переменные?
 
 автор: fekss   (19.12.2007 в 21:39)   письмо автору
 
 

Что лучше?

1.

echo 'Первая часть строки '.$name.' вторая часть';


2.

echo "Первая часть строки $name вторая часть";


Помню давно еще читал, что лучше склеивать строки(вариант 1) т.е. этим выигрываешь в производительности, но потом читал, что все было так до выхода PHP 5 и что в 5 версии 2й вариант лучше и на скорости работы скрипта это не скажется.

   
 
 автор: retsoul   (19.12.2007 в 22:12)   письмо автору
 
   для: fekss   (19.12.2007 в 21:39)
 

проведите эксперимент, измерьте время выполнения скрипта в обоих случаях
это будет вам ответом

   
 
 автор: Faraon   (19.12.2007 в 22:28)   письмо автору
 
   для: fekss   (19.12.2007 в 21:39)
 

>Помню давно еще читал, что лучше склеивать строки(вариант 1) т.е. этим выигрываешь в производительности, но потом читал, что все было так до выхода PHP 5 и что в 5 версии 2й вариант лучше и на скорости работы скрипта это не скажется.

Насчет скорости даже не заметите. В принципе ее нету.
И разницы вообщем абсолютно ни какой.

   
 
 автор: Drago   (19.12.2007 в 22:58)   письмо автору
 
   для: Faraon   (19.12.2007 в 22:28)
 

>И разницы вообщем абсолютно ни какой.
Разве что, чисто эстетическая.

   
 
 автор: bronenos   (19.12.2007 в 23:46)   письмо автору
 
   для: Drago   (19.12.2007 в 22:58)
 

Вариант с конкатенацией прокатит быстрее
Замерьте
for ($i=0; $i<1000; $i++) print "Число $i<br/>";
for ($i=0; $i<1000; $i++) print "Число ".$i."<br/>";

   
 
 автор: Drago   (20.12.2007 в 01:31)   письмо автору
 
   для: bronenos   (19.12.2007 в 23:46)
 

А смысл замерять? Вы часто применяете данный код в своих скриптах?
Разница будет на столько мизирной, что, как уже сказал Трианон, вы ее все равно не заметите.
Да и потом, зачастую, в скриптах встречаются куда более ресурсоемкие конструкции, которые будут сводить на нет, все ваши ухишрения, по повышению производительности таким способом.

   
 
 автор: SHAman   (20.12.2007 в 00:37)   письмо автору
 
   для: Faraon   (19.12.2007 в 22:28)
 

По-моему, разница все-таки есть. В первом случае происходит интерполяция переменной, а затем две конкатенации. (php написан на C, где конкатенация довольно дорогая операция).

Во втором случае происходит только интерполяция. Думаю, второй вариант быстрее.

   
 
 автор: Trianon   (20.12.2007 в 00:58)   письмо автору
 
   для: fekss   (19.12.2007 в 21:39)
 

Лучше не забивать голову ерундой.
А код писать так, чтобы он вышел более читабельным.
Разницы в быстродействии всё-равно не обнаружите.

   
 
 автор: kasmanaft   (20.12.2007 в 06:23)   письмо автору
 
   для: fekss   (19.12.2007 в 21:39)
 

Пару лет назад.... была статья о производительности PHP. Так там, на сколько помню, выяснили, что Ваш второй вариант - самый медленный (относительно, конечно. Внимание на эту разницу обращать особо не нужно).
Мне больше нравится echo "Первая часть строки {$name} вторая часть";
(Да и по результатам той сматьи этот вариант был неплох :) )

   
Rambler's Top100
вверх

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