ホームページ >バックエンド開発 >PHPチュートリアル >PHP ランダム文字列ジェネレーターが動作しないのはなぜですか?どうすれば修正できますか?

PHP ランダム文字列ジェネレーターが動作しないのはなぜですか?どうすれば修正できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 08:50:10644ブラウズ

Why isn't my PHP random string generator working, and how can I fix it?

PHP ランダム文字列ジェネレーターのトラブルシューティング

提供されたコードを使用して PHP でランダム文字列を生成しようとすると、次のような問題が発生します。出力はありません。この問題は 2 つの根本原因から生じます:

  1. スコープの問題: 変数 $randstring は、エコーされるときにスコープ外です。
  2. 文字列の連結エラー: 文字がテキスト内で連結されていません。

これらの問題を修正するには、提供されたコードを詳しく調べてみましょう:

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;
}

主な変更点は次のとおりです:

  • 指定するパラメーターの導入必要な文字列の長さ。デフォルトは 10 です。
  • 代わりにrandom_intを使用します。

この更新された関数を利用するには、返されたランダム文字列をエコーするだけです:

// Echo the random string.
echo generateRandomString();

// Alternatively, specify a custom length.
echo generateRandomString(64);

以前のバージョンの回答では rand を使用していることに注意してください。予測可能なランダム文字列が生成されたため、セキュリティを向上させるためにrandom_intに切り替えました。

以上がPHP ランダム文字列ジェネレーターが動作しないのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。