Последнее время часто вижу на форуме топики по типу:"do{} while()? ты чееееее, атстой!", человека, которого в лицо не видели, панибратски называют Женькой,
А вот скажите мне, ледис энд джентельменс, неужели конктрукция do{} while(); не имеет права на жЫсть? И какие у НЕГО(!) есть еще конструкции, которые выглядят ужасно и не имеют права на жизнь?
Спустя 30 минут, 6 секунд (26.04.2010 - 18:09) twin написал(а):
Ну для этого нужно изучить это безобразие, а руки не доходят. У меня давно есть задумка сделать диск "по следам Жени Попова". Только нет времени(((
Цитата |
неужели конктрукция do{} while(); не имеет права на жЫсть? |
Имеет права, конечно. Ровно как и имеет право регулярка для проверки целочисленных значений. И еще много чего, что по идее работает, но тикает как бомба с замедленным действием.
А этот самый знаменитый его момент с мета_д и мета_к я вот тут расписал.
Спустя 9 минут, 9 секунд (26.04.2010 - 18:18) sergeiss написал(а):
Цитата (waldicom @ 26.04.2010 - 18:39) |
неужели конктрукция do{} while(); не имеет права на жЫсть |
Этого никто не говорил. Но не в том применении, как это делается у этого Женька!
PS. twin шустрый, опредил

Спустя 4 минуты, 12 секунд (26.04.2010 - 18:23) Семён написал(а):
Говорят скорее всего те, кто не знает для чего применять.
do...while выполнять проход 1 раз, а потом повтор пока значение не будет TRUE
for - выполнять указанное число раз
foreach - проходить по каждому элементу массива.
do...while выполнять проход 1 раз, а потом повтор пока значение не будет TRUE
for - выполнять указанное число раз
foreach - проходить по каждому элементу массива.
Спустя 20 минут, 42 секунды (26.04.2010 - 18:43) twin написал(а):
do...while это вообще штука крайне редкая. Лично я встречал только теоретически. Вот допустим преобразование числа в строку, тут никак без него (если конечно settype() не юзать
)
А когда разбирается простой массив, на кой оно? Только неприятности, если пустая таблица.

$number = time();
$string = '';
$radix = 10;
$digits = "0123456789ABCDEF";
var_dump($number);
do
{
$digit = $number % $radix;
$number = ($number - $digit) / $radix;
$string = $digits[$digit] . $string;
}
while($number);
var_dump($string);
А когда разбирается простой массив, на кой оно? Только неприятности, если пустая таблица.
Спустя 32 минуты, 31 секунда (26.04.2010 - 19:16) sergeiss написал(а):
twin :
А этот цикл, do-while... Ну, вот у меня есть в одном месте поиск решения методом половинного деления. Там по-любому должна быть как минимум одна итерация цикла. Там что do-while подходит.
В другом месте. Надо зайти в цикл, проверить несколько условий. Которые ну никак в цикл while не влезают. Уж больно "ветвистые" условия... Поэтому сначала захожу в цикл, а потом, если условия не выполняются, выхожу из него по break. Иначе - прохожу весь цикл до конца.
А этот цикл, do-while... Ну, вот у меня есть в одном месте поиск решения методом половинного деления. Там по-любому должна быть как минимум одна итерация цикла. Там что do-while подходит.
В другом месте. Надо зайти в цикл, проверить несколько условий. Которые ну никак в цикл while не влезают. Уж больно "ветвистые" условия... Поэтому сначала захожу в цикл, а потом, если условия не выполняются, выхожу из него по break. Иначе - прохожу весь цикл до конца.
Спустя 1 час, 44 минуты, 48 секунд (26.04.2010 - 21:01) Nikitian написал(а):
Странный вопрос. Переведя его на человеко-понятный язык можно услышать следующее.
Цитата |
Копаю огород ломом и всегда слышу: "Ты чёёёё, атстой! Возьми лопату!" - так неужели лом не имеет права на жизнь? А как же тогда зимой лёд долбить? |
То, как применяется do-while для перебора полученных данных из бд - это неправильно (хотя иногда можно, точно осознавая выбор). do-while при правильном подходе помогает не дублировать код, при неправильном - способствует дублированию

Самый свежий пример использования do-while: надо сделать продление аукциона на 1 день минимум, но так, чтобы новая дата не выпала на выходной или праздничный день. Что может быть проще?
//Код не цитирую, а упрощённо разумеется
do{
$deadline=strtotime('+1 day',$deadline);
}while(is_weekend($deadilne));
Попробуйте сделать другим способом, чтобы было читабельно и коротко.
Спустя 1 час, 31 минута, 53 секунды (26.04.2010 - 22:32) waldicom написал(а):
Цитата (Nikitian @ 26.04.2010 - 20:01) |
Странный вопрос. Переведя его на человеко-понятный язык можно услышать следующее.... |
Эммм... Вообще-то тема задумавалась как насквозь флудерастическая. Цель получить ответ на вопрос о праве на существование конктрукции do{...}while() не ставилась.
Я думал это поймут все...
Спустя 14 часов, 22 минуты, 29 секунд (27.04.2010 - 12:55) John_761 написал(а):
Попов гуру...
>>"Я Учился Создавать Профессиональные PHP Сайты 5 Долгих Лет"
У него колоссальный опыт, как вы не понимаете его идей ?!
>>"Я Учился Создавать Профессиональные PHP Сайты 5 Долгих Лет"
У него колоссальный опыт, как вы не понимаете его идей ?!

_____________
Свои мозги еще никто не отменял.
Телепатов нету.