Feb 12, 2009 15:38
reset($aZoneIds);
while (list($key, $zoneId) = each($aZoneIds)) {...}
UPD - фрагмент из кода серьёзного ad-cервера. А люди, успешно занимающиеся рекламой, деньги считать умеют
UPD2 Разница между each и foreach таки нашлась:
Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself.
Leave a comment
Comments 64
function b($a) {
while (list($key, $zoneId) = each($a)) {
echo $zoneId."\n";
}
}
$a = array(1,2);
each($a); // <-- смещаем указатель
b($a);
echo "-----\n";
$a = array(1,2);
b($a);
Код в ПХП5 выведет :
2
-----
1
2
если в функцию добавить первой строкой reset() то она всегда будет обходить все элементы массива.
Reply
Reply
Reply
Reply
(The comment has been removed)
Reply
код плох сам по себе (автор не знал о других операторах)
как оптимизация он ни плох, ни хорош.
об оптимизации в отрыве от результатов профайлинга, озвучивания задачи и условий работы кода разговаривать вообще нельзя в принципе.
Reply
Reply
Reply
А пользователь, если ему не покажут страницу в течении трёх секунд закрывает окно.. и все капипиталы улетают нах...
Принципиальная разница между баннером и страницей UI в том, что загрузку страницы сайта вы подождёте, а с баннером скажете "ой, ой, мы вам наш членобаннер не показали"?
Вопрос в том, при каких объемах данных надо шлифовать код до этих reset-each, когда есть чудесный foreach
Reply
Reply
Reply
Reply
Reply
Вопрос о том, что быстрее: foreach или while(each) - обсуждался миллион раз и тривиален. не говоря о том, что подключение к базе данных или чтение файла занимается значительно больше времени, чем разница между ними помноженная на 10 тысяч.
Это не открытие века, и не оптимизация. Это потеря времени, Вашего и, самое главное, нашего.
Reply
а кроме того - тем более без пхп: ведь в нем такой медленный foreach!.. другие языки уже давно оптимизировали!
Reply
Leave a comment