Files
php-doc-ru/reference/math/functions/rand.xml
Andrey Gromov 684e662d98 upd
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@343537 c90b9560-bf6c-de11-be94-00142212c4b1
2017-11-30 16:26:58 +00:00

184 lines
6.2 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: adc322146749f7869f4a94d24a98049302f0a6d5 Maintainer: shein Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.rand" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>rand</refname>
<refpurpose>Генерирует случайное число</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>rand</methodname>
<void/>
</methodsynopsis>
<methodsynopsis>
<type>int</type><methodname>rand</methodname>
<methodparam><type>int</type><parameter>min</parameter></methodparam>
<methodparam><type>int</type><parameter>max</parameter></methodparam>
</methodsynopsis>
<simpara>
При вызове без параметров <parameter>min</parameter> и <parameter>max</parameter>,
возвращает псевдослучайное целое в диапазоне от 0 до <function>getrandmax</function>.
Например, если вам нужно случайное число между 5 и 15 (включительно),
вызовите <literal>rand(5, 15)</literal>.
</simpara>
&caution.cryptographically-insecure;
<note>
<simpara>
На некоторых платформах (таких как Windows) <function>getrandmax</function>
всего лишь 32767. Чтобы расширить диапазон, используйте параметры
<parameter>min</parameter> и <parameter>max</parameter>,
или обратитесь к функции <function>mt_rand</function>.
</simpara>
</note>
<note><simpara>Начиная с PHP 7.1.0, <function>rand</function> использует тот же
алгоритм получения случайных чисел, что и <function>mt_rand</function>. Для
сохранения обратной совместимости, функция <function>rand</function> позволяет
задавать параметр <parameter>max</parameter> меньше, чем параметр
<parameter>min</parameter>. Функция <function>mt_rand</function> в такой
ситуации будет возвращать &false;</simpara>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>min</parameter></term>
<listitem>
<para>
Наименьшее значение, которое может быть возвращено (по умолчанию: 0)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>max</parameter></term>
<listitem>
<para>
Наибольшее значение, которое может быть возвращено (по умолчанию: <function>getrandmax</function>)
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Псевдослучайное значение в диапазоне от <parameter>min</parameter>
(или 0) до <parameter>max</parameter> (или <function>getrandmax</function>).
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>7.2.0</entry>
<entry>
Для <function>rand</function> <link linkend="migration72.incompatible.rand-mt_rand-output">произведено исправление бага</link> смещения по модулю. Это означает, что
последовательности сгенерированные с конкретным начальным значением могут
отличаться от сгенерированных в PHP 7.1 для 64-битных машин.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
<link linkend="migration71.incompatible.rand-srand-aliases"><function>rand</function>
стала синонимом функции <function>mt_rand</function>.</link>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>rand</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo rand() . "\n";
echo rand() . "\n";
echo rand(5, 15);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
7771
22264
11
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<para>
Диапазон <parameter>min</parameter> - <parameter>max</parameter> не должен
выходить за границы <function>getrandmax</function>. То есть
(<parameter>max</parameter> -
<parameter>min</parameter>) &lt;= <function>getrandmax</function>.
В противном случае, <function>rand</function> может возвращать
менее качественные случайные числа.
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>srand</function></member>
<member><function>getrandmax</function></member>
<member><function>mt_rand</function></member>
<member><function>random_int</function></member>
<member><function>random_bytes</function></member>
<member><function>openssl_random_pseudo_bytes</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->