Как рассчитать обратное с для в PHP? - PullRequest
8 голосов
/ 02 июля 2010

Моя проблема: Я хочу считать обратный в цикле for.

Это противоположность того, что я хочу сделать:

for($i=1;$i<=10;$i++){
    echo $i;
}

Если я поставлю $i-- не работает (мой сервер падает).

Помоги мнеееее!

С наилучшими пожеланиями, Адам

Ответы [ 4 ]

27 голосов
/ 02 июля 2010

Когда вы говорите, что $i-- дает сбой вашему серверу, вы изменили инициализацию и условие для $i?

for($i=10; $i>=1; $i--){
    echo $i;
}
7 голосов
/ 02 июля 2010

Если вы возьмете for, как вы написали, и просто замените $i++ на $i--, значение $i будет уменьшаться с каждой итерацией (1, 0, -1, -2 и т. Д.) и условие зацикливания $i<=10 всегда выполняется.

Если вы хотите считать в обратном направлении, вам также необходимо изменить другие части (условие инициализации и зацикливания):

for ($i=10; $i>=1; $i--){
    echo $i;
}

Или вы берете последнее и вычитаете из него текущее значение и добавляете к нему первое значение:

for ($first=1, $i=$first, $last=10; $i<=$last; $i++){
    echo $last - $i + $first;
}
3 голосов
/ 02 июля 2010

Я не понимаю, просто делать

for($i=10;$i>=1;$i--){
    echo $i;
}

недостаточно?

1 голос
/ 02 июля 2010

из руководства PHP

для (expr1; expr2; expr3) Заявление

Первое выражение (expr1) вычисляется (выполняется) один раз безоговорочно в начале цикла.

В начале каждой итерации вычисляется expr2. Если значение равно TRUE, цикл продолжается и выполняются вложенные операторы. Если значение равно FALSE, выполнение цикла заканчивается.

В конце каждой итерации expr3 вычисляется (выполняется).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...