Собственно вот подумалось... А почему вместо PHP: <?php $array = array(); while ($temp = mysql_fetch_assoc($result)) { $array[] = $temp; } ?> Как это делают в классических случаях, не сделать "финт ушами" PHP: <?php for($array = array(); $temp = mysql_fetch_assoc($result); array_push($array, $temp)); ?> Имхо красивее... (или даже так если длинна строки не смущает) PHP: <?php for($array = array(); $temp = mysql_fetch_assoc($result); array_push($array, $temp)); ?> Мнения ?
array_push тут не к месту ИМХО. Если заменить на $array[] = $temp, то скорость должна быть сравнима с while. Но вот "красивость" такой записи у меня вызывает сомнения.
минусы - нестандартность - отсутствие блока {} - for оычно применяется к существующим спискам => глаз обязательно будет цеплятся за это место и думать лучше инкапсулировать это место
Зы, по сути при переборе результата с базы его обычно сразу и обрабатывают. Покрайней мере для меня стандартна запись вида PHP: <?php $result = mysql_query('SELECT fields FROM table LIMIT 0, 20', $database); if ($result && mysql_num_rows($result)){ $rows = array(); while ($row = mysql_fetch_assoc($result){ // Здесь что-то делаем с данными - htmlspecialchars и какие-то свои функции, генерирующие или обрабатывающие что-либо $rows[] = $row; } $parser->set('data', $rows); } $parser->set('content', $this->template('template.htm')); А в template применяю конструкцию типа PHP: <? if (is_set('content')){?> <table cellspacing="0" cellpadding="0" class="table_class"> <tr> <th>Заголовок 1</th> <th>Заголовок 2</th> </tr> <? foreach(get('data') AS $value){?> <td><?=$value['field1']?></td> <td><?=$value['field2']?></td> <?}?> </table> <?}else{?> <div class="no-data">Данных нет</div> <?}?> Удобно, просто и стандатрно для 95% случаев, когда надо вывести что-либо. Конечно это самый распросранённый случай и это пример. Реализации бывают разные. Главное идея
Так ли сильно важна скидка в 5 рублей при покупке Феррари ? Я смотрю ВСЁ что я определил в плюсы вы определили в минусы Вы прямо программисты какие-то, а как-же искусство ?
Vladson, не тот случай. Это то, что будет реально 100-200 раз исполнено в скрипте, но не вносит ничего нового, кроме funny syntax. Это тот случай, когда резонно сделать замер.
ради исскуства я тоже люблю всякие выпендрёжи.. даже тему про некорректно отрабатывающий интерпретатор php при использовании всяких красивых заморочек создавал на конкурирующем форуме ) но: я лично я не считаю твой вариант красивее иногда каждая копейка важна, каждая копейка увеличивается в геометрической прогрессии при огромных вложенных циклах Vladson а вообще пиши как тебе удобней
Разница мизерная, при маленьких запросах вообще разница в приделах прогрешности, а в больших запросах (вся база из 40000 записей) "финт ушами" 0.68сек - 0.70сек против 0.66сек - 0.68сек стандартным while с $array[]