PHP का srand() फ़ंक्शन **रैंडम नंबर जनरेटर को सीड (seed) करता है** — यानी उसकी प्रारंभिक अवस्था सेट करता है। PHP में इसका उपयोग **वैकल्पिक** है क्योंकि PHP स्वचालित रूप से सीडिंग करता है।
सिंटैक्स
srand(int $seed = ?): void
पैरामीटर
| पैरामीटर | विवरण |
|---|---|
$seed | सीड के रूप में उपयोग करने के लिए पूर्णांक। यदि नहीं दिया गया, तो रैंडम सीड उपयोग होता है। |
लौटाया गया मान
कोई मान नहीं लौटाता (void)।
उदाहरण
1. निश्चित सीड के साथ (पुनरुत्पादन योग्य परिणाम)
<?php srand(5); echo "rand(1,100) = " . rand(1, 100); ?>
rand(1,100) = 12
हर बार समान सीड (5) देने पर समान रैंडम अनुक्रम मिलेगा।
2. वर्तमान टाइमस्टैम्प के साथ सीड (पुराना तरीका)
<?php srand(time()); echo "rand() = " . rand(); ?>
rand() = 548287992
महत्वपूर्ण नोट्स
- PHP 4.2.0+ से स्वचालित सीडिंग: PHP स्वचालित रूप से एक सुरक्षित सीड (सिस्टम एंट्रॉपी से) का उपयोग करता है। मैन्युअल
srand()आमतौर पर अनावश्यक है। - पुनरुत्पादन के लिए: परीक्षण/डीबगिंग में निश्चित सीड उपयोगी है।
- सुरक्षा:
rand()औरsrand()**क्रिप्टोग्राफ़िक रूप से सुरक्षित नहीं** हैं। क्रिप्टोग्राफी के लिएrandom_int(),random_bytes(), याopenssl_random_pseudo_bytes()उपयोग करें। srand()ग्लोबल स्टेट प्रभावित करता है — समान प्रक्रिया में अन्य कोड प्रभावित हो सकता है।
बेहतर विकल्प: mt_srand() / mt_rand()
मर्सन ट्विस्टर (Mersenne Twister) एल्गोरिदम तेज़ और बेहतर गुणवत्ता वाला है:
<?php mt_srand(5); // सीड echo mt_rand(1, 100); // बेहतर रैंडमनेस ?>
PHP संस्करण
PHP 4, PHP 5, PHP 7, PHP 8+ में उपलब्ध।