如何将 rand() 值存储在会话变量中,而不会在下次执行时覆盖它




我正在为客户编写一些演示 Web 应用程序,我需要一篇文章生成器,它将使用会话变量 _article_id 作为存储的整数值,以从 MySQL 数据库中选择当天"最重要的"文章。

我在$_SESSION['_article_id']里面运行rand(1,99),但值似乎在变化,因为它在每个新请求上一遍又一遍地执行该函数。

如何将 rand(( 输出存储到变量中,使其在会话期间保持不变?

谢谢。

也许检查这个变量是否设置?

if(!isset($_SESSION['_article_id'])){
   $_SESSION['_article_id'] = rand(1,99);
}

https://www.php.net/isset

function generatePIN($digits = 4)
    {
        $i = 0; //counter
        $pin = ""; //our default pin is blank.
        while($i < $digits){
            //generate a random number between 0 and 9.
            $pin .= mt_rand(0, 9);
            $i++;
        }
        return $pin;
    }
if (!isset($_SESSION['_article_id'])){
$_SESSION['_article_id'] = generatePIN();
}

最新更新