2011-01-06 68 views
0

這一代碼進入一個無限循環,並給了我一個PHP那張無限循環

Fatal error: Maximum execution time of 30 seconds exceeded

這是我使用

<?php 
$sofar = 1; 

while ($sofar == 1); 
{ 
echo $sofar; 
$sofar == $sofar+1; 
} 

?> 
+5

只是一個跳轉開始爲什麼不試試echo $ sofar == $ sofar + 1;看看會發生什麼=) – kjy112 2011-01-06 21:23:59

+0

呵呵不錯。 :) – PeeHaa 2011-01-06 21:27:41

回答

1

您正在使用的增量兩個等號問題的代碼。即$sofar = $sofar + 1是正確的,但你有$sofar ==。或者只是$sofar++++$sofar的作品。

你基本上是做

if($sofar == $sofar+1){/*Nothing*/} 

所以你想要得到

if(1 == 2){/*nothing*/} 

那裏$ SOFAR從未cahnges,你必須使用=改變或設置一個變量的值。

您還在您的while語句末尾添加了一個分號,分號表示PHP語句的結尾。

你應該做

if(condition) 
{ 

} 
1
<?php 
$sofar = 1; 

while ($sofar == 1) 
{ 
echo $sofar; 
$sofar = $sofar+1; 
} 

?> 

你有一個等號(=)太多

而且你有一個;過了一段時間。

一個等號(=)分配值 兩個==跡象比較值

您還可以使用:

$sofar++; 
$sofar += 1; 
$sofar = $sofar +1; 

或許:

$sofar = 1; 

while ($sofar == 1) 
{ 
    echo ++$sofar; 
} 
1

是的,當然,它應該是:

$sofar = $sofar + 1 

而不是

$sofar == $sofar + 1 

後者(你正在使用)是一個條件語句。

0

你使用==這是不是一個賦值運算符,但有條件的經營者。

你應該做$sofar = $sofar+1;$sofar++;遞增值

0
<?php 
$sofar = 1; 

while ($sofar == 1) { 
    echo $sofar; 
    $sofar++; 
} 
?> 

增量與++

0

您的while聲明末尾有分號。這相當於

while ($sofar == 1) { 

} 

因此會導致無限循環。另外,你正在做一個比較,而不是任務。你的代碼應該看起來像這樣:

<?php 
$sofar = 1; 

while ($sofar == 1) 
{ 
echo $sofar; 
$sofar = $sofar+1; 
} 

?>