这段代码无限循环,给了我一个
致命错误:最长执行时间 超过30秒
这是我正在使用的代码
<?php
$sofar = 1;
while ($sofar == 1);
{
echo $sofar;
$sofar == $sofar+1;
}
?>
答案 0 :(得分:1)
您的问题是使用两个等号来表示增量。即$sofar = $sofar + 1
是正确的,但您改为$sofar ==
。或者,只需$sofar++
或++$sofar
即可。
你基本上在做什么
if($sofar == $sofar+1){/*Nothing*/}
所以你的表达式会评估为
if(1 == 2){/*nothing*/}
对于$ sofar never cahnges,您必须使用=
来更改或设置变量的值。
你还在while
语句的末尾添加了一个分号,分号表示PHP语句的结束。
你应该这样做
if( condition )
{
}
答案 1 :(得分: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;
}
答案 2 :(得分:1)
是的,当然,它应该是:
$sofar = $sofar + 1
而不是
$sofar == $sofar + 1
后一个(你正在使用)是一个条件语句。
答案 3 :(得分:0)
您使用的==
不是赋值运算符,而是条件运算符。
您应该$sofar = $sofar+1;
或$sofar++;
增加值
答案 4 :(得分:0)
<?php
$sofar = 1;
while ($sofar == 1) {
echo $sofar;
$sofar++;
}
?>
++
增加。
答案 5 :(得分:0)
==
是comparison operator,而非assigment operator(=
),因此指令$sofar == $sofar+1;
实际上什么都不做(它返回false
无处可去。)
换句话说:$sofar
始终为1
。
答案 6 :(得分:0)
您的while
声明末尾有一个分号。这相当于
while ($sofar == 1) {
}
因此会导致无限循环。此外,您正在进行比较,而不是作业。您的代码应如下所示:
<?php
$sofar = 1;
while ($sofar == 1)
{
echo $sofar;
$sofar = $sofar+1;
}
?>