@Evdokim001
Начинающий PHP программист

Возможно ли в php сохранить значение rand()?

Необходимо поставить rand() в плагин для wp import. Будет кастомное поле, которое не будет заполнено, и его нужно заполнить с помощью данной функции.
В плагине в нужном месте написал:
$value = &$post_price;
$post_price = rand(200, 2000);

Проблема в том, что PHP передает в $value не число, а саму функцию, и получается, что во время перезагрузки страницы меняется число.
Можете хотя бы подсказать, в какую сторону копать?
  • Вопрос задан
  • 266 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
Проблема в том, что PHP передает в $value не число, а саму функцию, и получается, что во время перезагрузки страницы меняется число.
Неправда. Передается именно число, но при каждом запуске этот код выполняется заново, и число меняется.

$value = &$post_price;
$post_price = rand(200, 2000);
echo $post_price . "<br>\n" . $post_price . "<br>\n" . $post_price; // три раза выведется одинаковое число
// но при обновлении страницы число будет другое


Сохранить можно, конечно. В файл, в базу данных, в сессию, или распечатать на принтере. Как вам угодно.
Ответ написан
nokimaro
@nokimaro Куратор тега PHP
mt_srand()
позволит всегда получать одно и то же рандомное значение в mt_rand() при использовании одинакового seed
То есть это, так называемая, предсказуемая рандомизация.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
glaphire
@glaphire Куратор тега PHP
PHP developer
вызывайте генерацию rand() один раз независимо от загрузки страницы (нп. создать для этого кнопку в админке) и храните эти значения в базе
Ответ написан
profesor08
@profesor08
https://www.php.net/manual/ru/reserved.variables.s...
if (isset($_SESSION["rand_price"]) === false) {
  $_SESSION["rand_price"] = rand(100, 500);
}

echo $_SESSION["rand_price"];
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
12 авг. 2020, в 10:28
10000 руб./за проект
12 авг. 2020, в 10:11
200 руб./за проект
12 авг. 2020, в 09:40
1000 руб./за проект