2017-02-15 78 views
0

所以我有一个非常愚蠢的问题。 我试图在PHP中编写一个无限循环,它不断地将变量$ variable = foo改为$ variable = bar。如果$ number可以被20整除,它会检测变量= bar,并永久将其更改回foo。 以下是我迄今为止的内容,将其限制为100次,但是如何使它永远持续下去?它也只会将foo更改为bar,并在循环的其余部分保留$ variable = bar。我认为我已经继续在错误的地方?或者我需要双倍继续某处。 感谢!php中的无限循环将变量从foo变为bar,从bar变为foo

$variable = "foo"; 

for ($number = 0; $number < 100; $number++) 
{ 
    echo $variable; 
    if ($number % 20 == 0 && $number > 0) { 
     echo "\n Divisible by 20 Changing variable"; 
     if ($variable = "foo") { 
      $variable = "bar"; 
      echo ", $number\n"; 
     } 
     if ($variable = "bar") { 
      $variable = "foo"; 
      echo ", $number\n"; 
     } 


     continue; 
} else { 
     echo "\n no change"; 

} 
} 
+0

如果不进一步挖掘代码,这很可能不是你想要的:'if($ variable =“foo”)' - 你想用==,对不对?另一个'if'也一样。 – domsson

+0

另外,绝对不需要'$ number> 0',因为您知道* $ number'将始终至少为0. – domsson

+0

而对于您的循环:'while($ continue){/ * .. 。* /}'只要你想循环继续,'$ continue'应该是'true'。 – domsson

回答

-1

尝试

$variable = "foo"; 

for ($number = 0; $number < 100; $number++) 
{ 
    echo $variable; 
    if ($number % 20 == 0 && $number > 0) { 
     echo "\n Divisible by 20 Changing variable"; 
     if ($variable == "foo") { 
      $variable = "bar"; 
      echo ", $number\n"; 
     } 
     if ($variable == "bar") { 
      $variable = "foo"; 
      echo ", $number\n"; 
     } 


     continue; 
} else { 
     echo "\n no change"; 

} 
} 

变化:

if($variable = "foo") ==> if($variable == "foo") 
if($variable = "bar") ==> if($variable == "bar") 
+0

做或不​​做。没有“尝试”。一个好的答案***将总是解释所做的事情以及为什么这样做,不仅是为了OP,还是为了将来访问SO。 –

+0

对不起,它没有改变任何不同。变量永远是foo,永远不会变成条。 – user7569926

1

在基本层面,以获得无限循环,你可以做两件事情:

  1. 您可以使用一个while(true)循环。
  2. 你可以使用一个破碎的for循环for ($number = 0; $number != $number-1; $number++)

第一个循环,而true值成立,所以只要你不做任何事一样重新定义什么true意味着在循环中,你应该确定

第二个依赖于$number从未等于$number-1等只是不断递增$number,我已经看到之前使用的省略初始化和完全条件

替代
for (;;) { 
    print 'loop!'; 
} 

虽然在你的情况下,我会去第二个,因为它可以让你在你的循环内访问一个$number,然后你可以在逻辑中检查$number % 20 == 0的结果。

+0

如何重新定义“真”意味着什么?你(或OP)想要的是在这里使用布尔变量,所以你可以用某种方式打破循环。 – domsson

+0

@dom无限循环的一点是它不会中断。 – Luke

相关问题