2012-06-26 36 views
-1

下面是我在做什麼(PHP)我在哪裏可能會搞亂for循環?

<?php 

for($i = 0; $i <= 30; $i+2) 
{ 
    echo $i; 
} 
?> 

它驅使我堅果,怎麼不起作用[打印什麼,瀏覽器會試圖加載。但是,如果我將$i+2更改爲$i++,它會起作用,如果我將其更改爲$i+1,那也不起作用。

我沒有智慧。出了什麼問題?

+1

'$ i + 2'不會改變'$ i'的值,它只是計算該表達式的值。 – DCoder

+3

你需要更新'$ i = $ i + 2' –

回答

4

它驅使我堅果,怎麼不起作用[打印什麼,瀏覽器會試圖加載。但是,如果我將$i+2更改爲$i++,它會起作用,如果我將其更改爲$i+1,那也不起作用。

$i++相當於$i = $i + 1,注意賦值運算符=,它不是在座$i + 2增加,但不更新......

因爲$i從不更新,你有一個無限循環,腳本可能會達到處理和終止的允許時間。

http://php.net/manual/en/function.set-time-limit.php

默認爲60秒的腳本允許運行的數量。如果達到了,該腳本返回致命錯誤。默認限制爲30秒,如果存在,則爲php.ini中定義的max_execution_time值。

2

您需要將$i+2更改爲$i = $i + 2$i += 2$i++表示$i += 1

for($i = 0; $i <= 30; $i += 2) 
{ 
    echo $i; 
} 
1

你必須改變以$i=$i+2,因爲$i++等於$i=$i+1

2

您需要在每次迭代後爲for循環提供一些遞增/遞減值。 $ i + 2不會更改i的值。因此,你的情況發生了什麼,for循環爲每次連續迭代找到相同的i值。因此終止條件永遠不會被滿足。 for循環因此陷入無限循環。

更改:$i+1$i=$i+1$i+=1

$i++其實意味着$i=$i+1