2016-12-27 48 views
-2

所以我試圖讓一個隨機字符串生成器使用for循環。我已經得到它循環的次數,但它拒絕每個循環產生一個新的字符串。有人可以看我的代碼,並告訴我我錯了哪裏?也沒有辦法使用unqid,所以請不要提及它。For循環不regen隨機字符串,保持不變

if($_SERVER['REQUEST_METHOD'] == "POST") 
{ 
    $key = $_POST['keysd']; 
    if(isset($key) && is_string($key)) 
    { 
     switch($key) 
     {  
      case "ksc"; 
      $algor = "78.0000.".rnumstr(7); 
      break; 

      case "kpl"; 
      $algor = "76.0000.".rnumstr(7); 
      break; 

      case "kfi"; 
      $algor = "D01EB0A01472".rnumstr(1).strtoupper(ralphstr(3)); 
      break; 
     } 

      $sum = $_POST['sum']; 
      $alg = $algor; 
      if(isset($sum)) 
      { 
       for ($i = 0; $i < $sum; $i++) 
       { 
        echo $alg.'<br/>'; 
       } 
      } 
    } 
} 
+3

什麼是'rnumstr'和'ralphstr'在做什麼?沒有一個完整的例子就無法重現問題。 –

+0

rnumstr生成一個隨機數字串並且ralphstr生成一個隨機字母串 – c0d3x1337

回答

1

如果您想要爲每個循環的迭代生成新的$ alg,則必須在每次迭代中調用切換器的代碼。重構你的代碼:

function getRandomValue($key) 
{ 
    switch($key) 
    {  
     case "ksc": 
      return "78.0000.".rnumstr(7); 

     case "kpl": 
      return "76.0000.".rnumstr(7); 

     case "kfi": 
      return "D01EB0A01472".rnumstr(1).strtoupper(ralphstr(3)); 
    } 
} 

if($_SERVER['REQUEST_METHOD'] == "POST") 
{ 
    $key = $_POST['keysd']; 
    if(isset($key) && is_string($key)) 
    { 
      $sum = $_POST['sum']; 
      if(isset($sum)) 
      { 
       for ($i = 0; $i < $sum; $i++) 
       { 
        $alg = getRandomValue($key); 
        echo $alg.'<br/>'; 
       } 
      } 
    } 
} 
+0

爲什麼你要做一個回報但不打破這種情況?這使我困惑。 – c0d3x1337

+1

如果你退回你退出的功能,你不需要休息。你真的擁有「15年以上的編碼經驗」嗎? – nbrogi