2017-02-15 77 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

相關問題