2017-02-15 2 views
0

Итак, у меня есть очень глупый вопрос. Я пытаюсь, в php, кодировать бесконечный цикл, который постоянно меняет переменную $ variable = foo на $ variable = bar. После того, как переменная = bar, чтобы она обнаружила и снова изменила ее на foo снова, если число $ делится на 20. Вот что у меня есть до сих пор, я ограничил его до 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 и никогда не изменяется на bar. – user7569926

1

На базовом уровне, чтобы получить бесконечный цикл, вы можете сделать несколько вещей:

  1. Вы можете использовать a while(true) петля.
  2. Вы можете использовать сломанный цикл for ($number = 0; $number != $number-1; $number++)

Первый петли в то время как true значения имеет, так до тех пор, пока вы ничего подобного не делать то, что переопределять true означает внутри цикла вы должны быть OK

Второй опирается на $number никогда не равен $number-1 и так просто держит приращения $number альтернативу, которую я видел, используемые перед опускать инициализацию и состояние целиком

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

Хотя в вашем случае я бы пошел на второй, так как он позволит вам получить доступ к $number внутри вашего цикла, после чего вы можете проверить результат $number % 20 == 0 в своей логике.

+0

Как переопределить, что означает «истинный»? То, что вы (или OP) хотите, - это использовать здесь логическую переменную, так что вы можете каким-то образом разбить цикл. – domsson

+0

@domdom точка бесконечного цикла, она не сломается. – Luke

Смежные вопросы