PHP进行无限循环

PHP进行无限循环,php,infinite-loop,Php,Infinite Loop,这段代码在一个无限循环中运行,给了我一个 致命错误:的最大执行时间 超过30秒 这是我正在使用的代码 <?php $sofar = 1; while ($sofar == 1); { echo $sofar; $sofar == $sofar+1; } ?> 您的问题是使用两个等号表示增量。Ie$sofar=$sofar+1是正确的,但您使用的是$sofar==。或者只需$sofar++或++$sofar即可 你基本上在做什么 if($sofar == $sofar+1){/

这段代码在一个无限循环中运行,给了我一个

致命错误:的最大执行时间 超过30秒

这是我正在使用的代码

<?php 
$sofar = 1;

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

?>

您的问题是使用两个等号表示增量。Ie
$sofar=$sofar+1
是正确的,但您使用的是
$sofar==
。或者只需
$sofar++
++$sofar
即可

你基本上在做什么

if($sofar == $sofar+1){/*Nothing*/}
所以你的表达式的计算结果是

if(1 == 2){/*nothing*/}
对于$sofar never cahnges,您必须使用
=
来更改或设置变量的值

您还可以在
语句末尾添加分号,而
语句的分号表示PHP语句的结尾

你应该做什么

if( condition )
{

}

您的问题是使用两个等号表示增量。Ie
$sofar=$sofar+1
是正确的,但您使用的是
$sofar==
。或者只需
$sofar++
++$sofar
即可

你基本上在做什么

if($sofar == $sofar+1){/*Nothing*/}
所以你的表达式的计算结果是

if(1 == 2){/*nothing*/}
对于$sofar never cahnges,您必须使用
=
来更改或设置变量的值

您还可以在
语句末尾添加分号,而
语句的分号表示PHP语句的结尾

你应该做什么

if( condition )
{

}
或许:

$sofar = 1;

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

$sofar = 1;

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

是的,当然,应该是:

$sofar = $sofar + 1
而不是

$sofar == $sofar + 1

后一个(您正在使用的)是一个条件语句。

是的,肯定应该是:

$sofar = $sofar + 1
而不是

$sofar == $sofar + 1

后者(您正在使用)是一个条件语句。

您正在使用的
=
不是赋值运算符,而是条件运算符


您应该执行
$sofar=$sofar+1
$sofar++
使用不是赋值运算符而是条件运算符的
=
来增加值

<?php 
$sofar = 1;

while ($sofar == 1) {
  echo $sofar;
  $sofar++;
}
?>
您应该执行
$sofar=$sofar+1
$sofar++
增加值


<?php 
$sofar = 1;

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


++

==
递增是一个,而不是(
=
),因此指令
$sofar==$sofar+1
实际上什么都不做(它不返回任何地方)

换句话说:
$sofar
始终是
1
=
是a,而不是(
=
),因此指令
$sofar===$sofar+1
实际上什么都不做(它不返回任何地方)


换句话说:
$sofar
总是
1

while
语句末尾有一个分号。这相当于

while ($sofar == 1) {

}
因此将导致一个无限循环。此外,您正在进行比较,而不是作业。您的代码应该如下所示:

<?php 
$sofar = 1;

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

?>

while
语句末尾有一个分号。这相当于

while ($sofar == 1) {

}
因此将导致一个无限循环。此外,您正在进行比较,而不是作业。您的代码应该如下所示:

<?php 
$sofar = 1;

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

?>


对你来说只是一个跳跃式的开始,为什么不试试echo$sofar==$sofar+1;看看会发生什么=)这只是一个跳跃式的开始,为什么不试试echo$sofar==$sofar+1;看看会发生什么=)仍然不起作用:去掉分号。从after
while()
仍然不起作用:删除分号。从
while()之后开始