WP_RAND() │ WP 2.6.2
Функция WP_RAND()
генерирует случайное число в диапазоне от указанного минимума до максимума.
Описание
Это плагинная функция из файла wp-includes/pluggable.php
. Это значит, что ее можно заменять в плагинах, и она работает только после загрузки всех плагинов. Вызвать ее можно только после хука plugins_loaded
или на хуке init
.
Заменить функцию
Вы можете создать функцию с таким же названием в своем обязательном или обычном плагине, и это заменит оригинал.
Используется в
wp_generate_password()
Параметры
- $min (int) - Нижний предел для генерируемого числа. Может быть положительным целым числом или нулем.
- $max (int) - Верхний предел для генерируемого числа. Должен быть положительным целым числом.
- По умолчанию: 4294967295 (максимально возможное значение).
Возвращаемое значение
Возвращает целое число. Случайное неотрицательное число между min
и max
.
Пример использования
wp_rand( $min, $max );
Примеры
echo wp_rand( 99, 99999 ); // Может вернуть: 19899, 85724, 77130, 51575
echo wp_rand( 1.5, 5.5 ); // Может вернуть: 1, 2, 3, 4, 5
echo wp_rand( 5, 4 ); // Всегда 5
echo wp_rand( 0, 0 ); // 0
За��етки
- Глобальная переменная:
$rnd_value
Изменения
- С 2.6.2 - Функция внедрена.
- С 4.4.0 - Использует
random_int()
из PHP7 или библиотекуrandom_compat
, если она доступна. - С 6.1.0 - Возвращает 0 вместо случайного числа, если оба значения
$min
и$max
равны 0.
Код функции
function wp_rand( $min = null, $max = null ) {
global $rnd_value;
$max_random_number = 3000000000 === 2147483647 ? (float) '4294967295' : 4294967295;
if ( null === $min ) {
$min = 0;
}
if ( null === $max ) {
$max = $max_random_number;
}
$min = (int) $min;
$max = (int) $max;
static $use_random_int_functionality = true;
if ( $use_random_int_functionality ) {
try {
$_max = max( $min, $max );
$_min = min( $min, $max );
$val = random_int( $_min, $_max );
if ( false !== $val ) {
return absint( $val );
} else {
$use_random_int_functionality = false;
}
} catch ( Error $e ) {
$use_random_int_functionality = false;
} catch ( Exception $e ) {
$use_random_int_functionality = false;
}
}
if ( strlen( $rnd_value ) < 8 ) {
if ( defined( 'WP_SETUP_CONFIG' ) ) {
static $seed = '';
} else {
$seed = get_transient( 'random_seed' );
}
$rnd_value = md5( uniqid( microtime() . mt_rand(), true ) . $seed );
$rnd_value .= sha1( $rnd_value );
$rnd_value .= sha1( $rnd_value . $seed );
$seed = md5( $seed . $rnd_value );
if ( ! defined( 'WP_SETUP_CONFIG' ) && ! defined( 'WP_INSTALLING' ) ) {
set_transient( 'random_seed', $seed );
}
}
$value = substr( $rnd_value, 0, 8 );
$rnd_value = substr( $rnd_value, 8 );
$value = abs( hexdec( $value ) );
$value = $min + ( $max - $min + 1 ) * $value / ( $max_random_number + 1 );
return abs( (int) $value );
}
Связанные функции
Полезные функции PHP
array_is_list()
array_key_first()
array_key_last()
is_countable()
is_iterable()
- и другие.
Вспомогательные функции
__return_empty_array()
__return_empty_string()
__return_false()
__return_null()
- и другие.
Эта статья объясняет, как использовать функцию wp_rand()
для генерации случайных чисел в WordPress, и предоставляет примеры наглядного использования.