PHP-Zufallszeichenfolgengenerator: Fehlerbehebung bei einem häufigen Fallstrick
In PHP ist das Generieren einer zufälligen Zeichenfolge eine häufige Aufgabe. Allerdings kann es manchmal zu unerwarteten Problemen kommen. Betrachten Sie den folgenden Codeausschnitt:
function RandomString() { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randstring = ''; for ($i = 0; $i < 10; $i++) { $randstring = $characters[rand(0, strlen($characters))]; } return $randstring; } RandomString(); echo $randstring;
Obwohl dieser Codeausschnitt einfach aussieht, erzeugt er absolut keine Ausgabe. Was könnte schiefgehen?
Verstehen der Probleme
Es gibt zwei Hauptprobleme mit dem Code:
Lösung
Um diese Probleme zu beheben, Der Code kann wie folgt geändert werden:
function generateRandomString($length = 10) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { $randomString .= $characters[random_int(0, $charactersLength - 1)]; } return $randomString; } // Echo the random string. echo generateRandomString(); // Optionally, you can give it a desired string length. echo generateRandomString(64);
In diesem verbesserten Code wird $randstring außerhalb der Funktion deklariert und als Ergebnis zurückgegeben. Innerhalb der Schleife wird das neue Zeichen an den vorhandenen $randomString-Wert angehängt. Darüber hinaus wird zur Verbesserung der Sicherheit die Funktion random_int anstelle von rand verwendet.
Durch die Behebung dieser Probleme generiert der Code nun eine zufällige Zeichenfolge der angegebenen Länge und zeigt sie in der Ausgabe an.
Das obige ist der detaillierte Inhalt vonWarum funktioniert mein PHP-Zufallszeichenfolgengenerator nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!