[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: echo или конкатация
Shuriken
Доброго времени суток!

Что быстрее работает и меньше ест ресурсов echo или конкатация? Есть два примера вывода данных из БД в столбик.

Первый:

$out = '';
while ($row = mysql_fetch_assoc($res))
{
$out .= $row['name'].'<br />';
}
echo $out;


Второй:


while ($row = mysql_fetch_assoc($res))
{
echo $row['name'].'<br />';
}


Какой из них предпочтительней? Или вообще можно этим не заморачиваться и делать как удобно?
inpost
не заморачивайся.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
glock18
Цитата (Shuriken @ 4.05.2013 - 11:35)
Доброго времени суток!

Что быстрее работает и меньше ест ресурсов echo или конкатация? Есть два примера вывода данных из БД в столбик.

Первый:

$out = '';
while ($row = mysql_fetch_assoc($res))
{
$out .= $row['name'].'<br />';
}
echo $out;


Второй:


while ($row = mysql_fetch_assoc($res))
{
echo $row['name'].'<br />';
}


Какой из них предпочтительней? Или вообще можно этим не заморачиваться и делать как удобно?

Значительность разницы во многом зависит от общего объема текста.
- Если текста относительно немного, то лучше не морочать себе голову ерундой.
- Если текста много (очень-очень много и столько же операций конкатенации), то предпочтительнее обойтись без конкатенации.

Почти всегда можно позволить себе не заморачиваться. 2й пункт начнет иметь серьезное значение, если объем текста измеряется в мегабайтах, и кол-во операций конкатенации 100+. До этого можно спокойно взирать на это сквозь пальцы.
Shuriken
Спасибо
sergeiss
Если строго, то и то, и другое неправильно smile.gif Потому что ты не разделяешь обработку и вывод, т.е. такой вывод данных находится очень далеко от "модели MVC". Более правильно нужные данные сохранить (например, в массив) и потом вывести, когда надо будет.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
glock18
Цитата (sergeiss @ 5.05.2013 - 09:59)
Если строго, то и то, и другое неправильно smile.gif Потому что ты не разделяешь обработку и вывод, т.е. такой вывод данных находится очень далеко от "модели MVC". Более правильно нужные данные сохранить (например, в массив) и потом вывести, когда надо будет.

ну, тут вопрос то не про правильность, а про потребление ресурсов )
inpost
Shuriken
Логически мысли, что будет быстрее: создать переменную, заполнить данными, вывести переменную. Или просто взять и вывести? Конечно вывести.
Теперь конкатенация и echo: что быстрее, взять и вывести строку, или сначала склеить строки, а потом вывести? Понятное дело для склеивания ты так же будешь тратить время. Вторая часть рассказа как раз про синтаксис echo и разделителем которой будет "запятая", а не "точка".

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
glock18
Цитата (inpost @ 5.05.2013 - 11:22)
Shuriken
Логически мысли, что будет быстрее: создать переменную, заполнить данными, вывести переменную. Или просто взять и вывести? Конечно вывести.
Теперь конкатенация и echo: что быстрее, взять и вывести строку, или сначала склеить строки, а потом вывести? Понятное дело для склеивания ты так же будешь тратить время. Вторая часть рассказа как раз про синтаксис echo и разделителем которой будет "запятая", а не "точка".

Такая логика весьма редко применима. К тому же не отражает действительной разницы.

PS: комментарий про запятую кстати весьма уместен.
ilyaplot
Заморачивался этим вопросом. По результатом моих тестов выяснилось, что конкатация работает медленнее, чем помещение строк в массив и implode. Случаи могут быть разные, я тестировал на больших SQL запросах, состоящих из множества маленьких параметров.

_____________
Заработай на Userator
glock18
Цитата (ilyaplot @ 5.05.2013 - 12:46)
Заморачивался этим вопросом. По результатом моих тестов выяснилось, что конкатация работает медленнее, чем помещение строк в массив и implode. Случаи могут быть разные, я тестировал на больших SQL запросах, состоящих из множества маленьких параметров.

Вместо подобных кустарных тестов лучше почитайте, как и что выполняется. Пользы больше будет
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.