2016-12-27 4 views
-2

私はランダムな文字列ジェネレータをforループで動作させようとしています。私はループ回数を増やす必要がありますが、ループごとに新しい文字列を生成することを拒否しています。誰かが私のコードを見て、私がどこに間違っていたかを教えてくれますか?また、unqidを使用する方法はありませんので、それを言及しないでください。Forループはランダムな文字列を再生しません、同じままです

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

関連する問題