這一代碼進入一個無限循環,並給了我一個PHP那張無限循環
Fatal error: Maximum execution time of 30 seconds exceeded
這是我使用
<?php
$sofar = 1;
while ($sofar == 1);
{
echo $sofar;
$sofar == $sofar+1;
}
?>
這一代碼進入一個無限循環,並給了我一個PHP那張無限循環
Fatal error: Maximum execution time of 30 seconds exceeded
這是我使用
<?php
$sofar = 1;
while ($sofar == 1);
{
echo $sofar;
$sofar == $sofar+1;
}
?>
您正在使用的增量兩個等號問題的代碼。即$sofar = $sofar + 1
是正確的,但你有$sofar ==
。或者只是$sofar++
或++$sofar
的作品。
你基本上是做
if($sofar == $sofar+1){/*Nothing*/}
所以你想要得到
if(1 == 2){/*nothing*/}
那裏$ SOFAR從未cahnges,你必須使用=
改變或設置一個變量的值。
您還在您的while
語句末尾添加了一個分號,分號表示PHP語句的結尾。
你應該做
if(condition)
{
}
<?php
$sofar = 1;
while ($sofar == 1)
{
echo $sofar;
$sofar = $sofar+1;
}
?>
你有一個等號(=)太多
而且你有一個;過了一段時間。
一個等號(=)分配值 兩個==跡象比較值
您還可以使用:
$sofar++;
$sofar += 1;
$sofar = $sofar +1;
或許:
$sofar = 1;
while ($sofar == 1)
{
echo ++$sofar;
}
是的,當然,它應該是:
$sofar = $sofar + 1
而不是
$sofar == $sofar + 1
後者(你正在使用)是一個條件語句。
你使用==
這是不是一個賦值運算符,但有條件的經營者。
你應該做$sofar = $sofar+1;
或$sofar++;
遞增值
<?php
$sofar = 1;
while ($sofar == 1) {
echo $sofar;
$sofar++;
}
?>
增量與++
。
==
是comparison operator,不assigment operator(=
),使指令$sofar == $sofar+1;
實際上沒有做任何事情(它返回false
無處)。
換句話說:$sofar
總是1
。
您的while
聲明末尾有分號。這相當於
while ($sofar == 1) {
}
因此會導致無限循環。另外,你正在做一個比較,而不是任務。你的代碼應該看起來像這樣:
<?php
$sofar = 1;
while ($sofar == 1)
{
echo $sofar;
$sofar = $sofar+1;
}
?>
只是一個跳轉開始爲什麼不試試echo $ sofar == $ sofar + 1;看看會發生什麼=) – kjy112 2011-01-06 21:23:59
呵呵不錯。 :) – PeeHaa 2011-01-06 21:27:41