2010-07-02 39 views
6

我的问题:我想在for循环中计数inverse。如何在php中对for进行反向计数?

这是我所想要做的相反:

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

如果我把$i--不工作(我的服务器崩溃)。

帮助meeee!

最好的问候, 亚当

+1

如果它崩溃你的服务器...一些非常错误的事情正在进行。还是它是“崩溃”的自由使用之一? – Artefacto 2010-07-02 16:50:24

+0

@Artefacto:他的意思是“PHP脚本永远不会返回并且CPU负载增加”。正如你写无限循环时发生的那样。 – Tomalak 2010-07-02 16:53:25

+0

因为我开始了无限循环而崩溃了:P @thetaiko已经为我解决了。谢谢您的帮助! – Adam 2010-07-02 16:53:56

回答

23

当你说$i--崩溃您的服务器,你有没有改变$i初始化和条件?

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

Omg :)))我是一个小菜鸟,是的,我改变了它,但不是这样 它的工作原理感谢:D – Adam 2010-07-02 16:50:07

6

如果拿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; 
} 
+0

非常感谢! – Adam 2010-07-02 17:02:06

2

我不明白这一点,只是在做

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

为n够了吗?

+0

非常感谢! – Adam 2010-07-02 17:03:25

1

PHP manual

为(表达式1;表达式2;表达式3) 语句

第一个表达式(表达式1)在循环的开始进行评估(执行)一次无条件。

在每次迭代开始时,评估expr2。如果它的计算结果为TRUE,则循环继续,并执行嵌套语句。如果它评估为FALSE,则循环的执行结束。

在每次迭代结束时,评估(执行)expr3。

+0

非常感谢! – Adam 2010-07-02 17:03:51