<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.random-engine.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'random-engine.generate.php',
    1 => 'Random\\Engine::generate',
    2 => 'Generates randomness',
  ),
  'up' => 
  array (
    0 => 'class.random-engine.php',
    1 => 'Random\\Engine',
  ),
  'prev' => 
  array (
    0 => 'class.random-engine.php',
    1 => 'Random\\Engine',
  ),
  'next' => 
  array (
    0 => 'class.random-cryptosafeengine.php',
    1 => 'Random\\CryptoSafeEngine',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/random/random/engine/generate.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="random-engine.generate" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Random\Engine::generate</h1>
  <p class="verinfo">(PHP 8 &gt;= 8.2.0)</p><p class="refpurpose"><span class="refname">Random\Engine::generate</span> &mdash; <span class="dc-title">Generates randomness</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-random-engine.generate-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>Random\Engine::generate</strong></span>(): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   Returns randomness and advances the algorithm’s state by one step.
  </p>
  <p class="para">
   The randomness is represented by a binary string containing random bytes. This representation
   allows to unambiguously interpret the random bits generated by the algorithm, for example to
   accommodate different output sizes used by different algorithms.
  </p>
  <p class="para">
   Algorithms that natively operate on integer values should return the integer in little-endian
   byte order, for example by leveraging the <span class="function"><a href="function.pack.php" class="function">pack()</a></span> function with the
   <code class="literal">P</code> format code. The high-level interface provided by the
   <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> will interpret the returned random bytes as unsigned
   little-endian integers if a numeric representation is required.
  </p>
  <p class="para">
   It is strongly recommended that each bit of the returned string is uniformly and independently
   selected, as some applications require randomness based on the bit-level to work correctly.
   For example linear congruential generators often generate lower-quality randomness for the less
   significant bits of the return integer value and thus would not be appropriate for applications
   that require bit-level randomness.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-random-engine.generate-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">Bu işlevin bağımsız değişkeni yoktur.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-random-engine.generate-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   A non-empty string containing random bytes.
  </p>

  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <span class="simpara">
    The <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> works with unsigned 64 bit integers internally.
    If the returned string contains more than 64 bit (8 byte) of randomness the exceeding
    bytes will be ignored. Other applications may be able to process more than 64 bit at once.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 errors" id="refsect1-random-engine.generate-errors">
  <h3 class="title">Hatalar/İstisnalar</h3>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">
     If generating randomness fails, a <span class="classname"><a href="class.random-randomexception.php" class="classname">Random\RandomException</a></span> should
     be thrown. Any other <span class="classname"><a href="class.exception.php" class="classname">Exception</a></span> thrown during generation should
     be caught and wrapped into a <span class="classname"><a href="class.random-randomexception.php" class="classname">Random\RandomException</a></span>.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     If the returned string is empty, a <span class="classname"><a href="class.random-brokenrandomengineerror.php" class="classname">Random\BrokenRandomEngineError</a></span>
     will be thrown by the <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span>.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     If the implemented algorithm is severely biased, a <span class="classname"><a href="class.random-brokenrandomengineerror.php" class="classname">Random\BrokenRandomEngineError</a></span>
     may be thrown by the <span class="classname"><a href="class.random-randomizer.php" class="classname">Random\Randomizer</a></span> to prevent infinite loops
     if rejection sampling is required to return unbiased results.
    </span>
   </li>
  </ul>
 </div>


 <div class="refsect1 examples" id="refsect1-random-engine.generate-examples">
  <h3 class="title">Örnekler</h3>
  <div class="example" id="example-1">
   <p><strong>Örnek 1 <span class="function"><strong>Random\Engine::generate()</strong></span> example</strong></p>
   <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/**<br /> * Implements a Linear Congruential Generator with modulus 65536,<br /> * multiplier 61 and increment 17 returning an 8 Bit integer.<br /> *<br /> * Note: This engine is suitable for demonstration purposes only.<br /> *       Linear Congruential Generators generally generate low<br /> *       quality randomness and this specific implementation has<br /> *       a very short 16 Bit period that is unsuitable for<br /> *       almost any real-world use case.<br /> */<br /></span><span style="color: #007700">final class </span><span style="color: #0000BB">LinearCongruentialGenerator </span><span style="color: #007700">implements </span><span style="color: #0000BB">\Random\Engine<br /></span><span style="color: #007700">{<br />    private </span><span style="color: #0000BB">int $state</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(?</span><span style="color: #0000BB">int $seed </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />    {<br />        if (</span><span style="color: #0000BB">$seed </span><span style="color: #007700">=== </span><span style="color: #0000BB">null</span><span style="color: #007700">) {<br />            </span><span style="color: #0000BB">$seed </span><span style="color: #007700">= </span><span style="color: #0000BB">random_int</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">0xffff</span><span style="color: #007700">);<br />        }<br /><br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">state </span><span style="color: #007700">= </span><span style="color: #0000BB">$seed </span><span style="color: #007700">&amp; </span><span style="color: #0000BB">0xffff</span><span style="color: #007700">;<br />    }<br /><br />    public function </span><span style="color: #0000BB">generate</span><span style="color: #007700">(): </span><span style="color: #0000BB">string<br />    </span><span style="color: #007700">{<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">state </span><span style="color: #007700">= (</span><span style="color: #0000BB">61 </span><span style="color: #007700">* </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">state </span><span style="color: #007700">+ </span><span style="color: #0000BB">17</span><span style="color: #007700">) &amp; </span><span style="color: #0000BB">0xffff</span><span style="color: #007700">;<br /><br />        return </span><span style="color: #0000BB">pack</span><span style="color: #007700">(</span><span style="color: #DD0000">'C'</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">state </span><span style="color: #007700">&gt;&gt; </span><span style="color: #0000BB">8</span><span style="color: #007700">);<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$r </span><span style="color: #007700">= new </span><span style="color: #0000BB">\Random\Randomizer</span><span style="color: #007700">(<br />    new </span><span style="color: #0000BB">LinearCongruentialGenerator</span><span style="color: #007700">(</span><span style="color: #0000BB">seed</span><span style="color: #007700">: </span><span style="color: #0000BB">1</span><span style="color: #007700">)<br />);<br /><br />echo </span><span style="color: #DD0000">"Lucky Number: "</span><span style="color: #007700">, </span><span style="color: #0000BB">$r</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getInt</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">99</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">Lucky Number: 4</pre>
</div>
   </div>
  </div>
 </div>



</div><?php manual_footer($setup); ?>