WP_RAND() Функция: генерация случайного числа в WordPress

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, и предоставляет примеры наглядного использования.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *