<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Seed the better random number generator</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.mt-rand.html">mt_rand</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.octdec.html">octdec</a></div> <div class="up"><a href="ref.math.html">Math Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="function.mt-srand" class="refentry"> <div class="refnamediv"> <h1 class="refname">mt_srand</h1> <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">mt_srand</span> — <span class="dc-title">Seed the better random number generator</span></p> </div> <div class="refsect1 description" id="refsect1-function.mt-srand-description"> <h3 class="title">Description</h3> <div class="methodsynopsis dc-description"> <span class="type"><span class="type void">void</span></span> <span class="methodname"><strong>mt_srand</strong></span> ([ <span class="methodparam"><span class="type">int</span> <code class="parameter">$seed</code></span> ] )</div> <p class="para rdfs-comment"> Seeds the random number generator with <em><code class="parameter">seed</code></em> or with a random value if no <em><code class="parameter">seed</code></em> is given. </p> <blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara">As of PHP 4.2.0, there is no need to seed the random number generator with <span class="function"><a href="function.srand.html" class="function">srand()</a></span> or <span class="function"><strong>mt_srand()</strong></span> as this is now done automatically. </span></p></blockquote> </div> <div class="refsect1 parameters" id="refsect1-function.mt-srand-parameters"> <h3 class="title">Parameters</h3> <p class="para"> <dl> <dt> <span class="term"><em><code class="parameter">seed</code></em></span> <dd> <p class="para"> An optional seed value </p> </dd> </dt> </dl> </p> </div> <div class="refsect1 returnvalues" id="refsect1-function.mt-srand-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> No value is returned. </p> </div> <div class="refsect1 changelog" id="refsect1-function.mt-srand-changelog"> <h3 class="title">Changelog</h3> <p class="para"> <table class="doctable informaltable"> <thead> <tr> <th>Version</th> <th>Description</th> </tr> </thead> <tbody class="tbody"> <tr> <td>4.2.0</td> <td> The <em><code class="parameter">seed</code></em> becomes optional and defaults to a random value if omitted. </td> </tr> <tr> <td>5.2.1</td> <td> The Mersenne Twister implementation in PHP now uses a new seeding algorithm by Richard Wagner. Identical seeds no longer produce the same sequence of values they did in previous versions. This behavior is not expected to change again, but it is considered unsafe to rely upon it nonetheless. </td> </tr> </tbody> </table> </p> </div> <div class="refsect1 examples" id="refsect1-function.mt-srand-examples"> <h3 class="title">Examples</h3> <p class="para"> <div class="example" id="example-3468"> <p><strong>Example #1 <span class="function"><strong>mt_srand()</strong></span> example</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// seed with microseconds<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">make_seed</span><span style="color: #007700">()<br />{<br /> list(</span><span style="color: #0000BB">$usec</span><span style="color: #007700">, </span><span style="color: #0000BB">$sec</span><span style="color: #007700">) = </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">' '</span><span style="color: #007700">, </span><span style="color: #0000BB">microtime</span><span style="color: #007700">());<br /> return (float) </span><span style="color: #0000BB">$sec </span><span style="color: #007700">+ ((float) </span><span style="color: #0000BB">$usec </span><span style="color: #007700">* </span><span style="color: #0000BB">100000</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">mt_srand</span><span style="color: #007700">(</span><span style="color: #0000BB">make_seed</span><span style="color: #007700">());<br /></span><span style="color: #0000BB">$randval </span><span style="color: #007700">= </span><span style="color: #0000BB">mt_rand</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> </div> </p> </div> <div class="refsect1 seealso" id="refsect1-function.mt-srand-seealso"> <h3 class="title">See Also</h3> <p class="para"> <ul class="simplelist"> <li class="member"> <span class="function"><a href="function.mt-rand.html" class="function" rel="rdfs-seeAlso">mt_rand()</a> - Generate a better random value</span></li> <li class="member"> <span class="function"><a href="function.mt-getrandmax.html" class="function" rel="rdfs-seeAlso">mt_getrandmax()</a> - Show largest possible random value</span></li> <li class="member"> <span class="function"><a href="function.srand.html" class="function" rel="rdfs-seeAlso">srand()</a> - Seed the random number generator</span></li> </ul> </p> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="function.mt-rand.html">mt_rand</a></div> <div class="next" style="text-align: right; float: right;"><a href="function.octdec.html">octdec</a></div> <div class="up"><a href="ref.math.html">Math Functions</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>