Конструкция do while

  • Автор темы Автор темы koder
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

koder

Истина здесь
Конструкция do while

Просмотрел много исходников, и постоянно вижу
конструкцию
PHP:
do {
if (..) {
..
break;
}
if (...)
} while(0)
Почему какой то изврат программисты пишут?
 
бред.

Типа филтр такой, если одно условине не верно, то остальное не делаем. Но это бред.
 
koder
те программисты, вероятно, не знают конструкции else.
 
это не бред, а очень удобный прием, позволяющий уходить от множественной вложенности условных операторов. Кроме множества исходников, стоит еще и теорию подтянуть ;-)
 
Gorynych
return

-~{}~ 19.08.07 23:11:

Возможно, может быть случай когда надо будет продолжать выполнять код. Хотя, если честно мне в голову не приходит пример, такой воспаленной фантазии.
 
Обычно я это встречаю у dezend кодов
вот пример dezend'a
PHP:
do
    {
        if ( !empty( $paramarr['perpage'] ) )
        {
            $paramarr['perpage'] = intval( $paramarr['perpage'] );
            if ( empty( $paramarr['perpage'] ) )
            {
                $paramarr['perpage'] = 20;
            }
            if ( empty( $_SGET['page'] ) )
            {
                $_SGET['page'] = 1;
            }
            $_SGET['page'] = intval( $_SGET['page'] );
            if ( $_SGET['page'] < 1 )
            {
                $_SGET['page'] = 1;
            }
            $start = ( $_SGET['page'] - 1 ) * $paramarr['perpage'];
            $sql['limit'] = "LIMIT ".( $start ).",".$paramarr['perpage'];
            break;
        }
        else if ( empty( $paramarr['limit'] ) )
        {
            $sql['limit'] = "LIMIT 0,1";
            break;
        }
        $paramarr['limit'] = getdotstring( $paramarr['limit'], "int", true, array( ), 1, false );
        if ( $paramarr['limit'] )
        {
            $sql['limit'] = "LIMIT ".$paramarr['limit'];
            break;
        }
        else
        {
            $sql['limit'] = "LIMIT 0,1";
        }
    } while ( 0 );
 
Ф юмор адназначно!

Что и требовалось доказать - бред.
 
Хотя, если честно мне в голову не приходит пример, такой воспаленной фантазии.
построение карты сайта через множественные sql запросы, первое что в голову пришло.

ps. в теорию деревьев не отправлять, я всего лишь показал пример в котором do-while будет достаточно удобной конструкцией.
 
Marquis
Если я вас понял рекурсия?
Вот обьясните мне в каком именно месте надо применять

function getTree($id)
{
$sql = {SQL}
while(fetch)
{
... getTree($id);
}
return $result;
}
}
 
т.е. тут надо убирать эти do и while
хотя код вроде рабочий с этими конструкциями...
 
Как мягко и ненавязчиво нас подвели к истиному вопросу топика
т.е. тут надо убирать эти do и while
хотя код вроде рабочий с этими конструкциями...
:))))))))))
 
koder
Смотрите программа вывода на екран Hello world!
PHP:
<?php
sleep(10);
for($i=0;$i<1000000;$i=$i+0.01);
echo 'Hello world!';
?>

Как вы думаете тут надо убирать sleep и for? 
хотя код вроде рабочий с этими конструкциями...

[size=1][i]-~{}~ 19.08.07  23:44:[/i][/size]

[b]Mr_Max[/b]
не совсем.
 
Вот так вот dezender расшифровывает коряво зашифрованные скрипты
 
HraKK
Сорри, моя ошибка.
Построить через do-while можно только одну ветку дерева.
для целого дерева будет рекурсия.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху