Недавно узнал, что при инициализации цикла for можно задавать не только счётчик итераций, но вообще любое произвольное число переменных.
Это бывает полезно, например, если вы выбрали из базы данных несколько строк и хотите сделать число итераций, равное числу строк. Можно, конечно, инициализировать переменную перед циклом (что так же хорошо, как и техника, вынесенная в заголовок); ещё можно написать что-то вроде этого:
for ($i=0; $i<mysql_num_rows($query); $i++)
Однако такая инициализация цикла поведёт к падению производительности приложения, поскольку функция получения одного и того же количества строк будет отрабатывать при каждой итерации.
Недавно подсмотрел вот такое элегантное решение этой проблемы, если количество строк вам нужно только для инициализации цикла:
for ($i=0, $r=mysql_num_rows($query); $i<$r; $i++)
Иными словами, в первом операторе цикла for можно указывать нужное количество переменных, разделяя их запятыми.
Конечно же, это может пригодиться не только в показанном случае, просто для меня этот пример очень показателен — я слишком часто использую подобные конструкции).
Метки: Программирование, Php, Quick tips, Циклы
Рейтинг записи: 9 
© Разработка, заклинания и дизайн — Ностиэ & Менелион Эленсуле, 2010 — 2024