PHP का rand() फ़ंक्शन **स्यूडो-रैंडम (pseudo-random)** पूर्णांक जनरेट करता है। यह एक रेंज में यादृच्छिक संख्या लौटाता है। डिफ़ॉल्ट रेंज 0 से getrandmax() तक होती है।
सिंटैक्स
rand(): int rand(int $min, int $max): int
पैरामीटर्स
| पैरामीटर | विवरण |
|---|---|
$min | निचली सीमा (डिफ़ॉल्ट 0) |
$max | ऊपरी सीमा (डिफ़ॉल्ट getrandmax()) |
लौटाया गया मान
$min और $max (सम्मिलित) के बीच स्यूडो-रैंडम पूर्णांक।
उदाहरण
1. बिना आर्गुमेंट्स (डिफ़ॉल्ट रेंज)
<?php echo "rand() = " . rand() . "\n"; echo "rand() = " . rand() . "\n"; ?>
rand() = 1663374457 rand() = 888196648
2. कस्टम रेंज (11 से 30)
<?php echo "rand(11,30) = " . rand(11, 30) . "\n"; echo "rand(11,30) = " . rand(11, 30) . "\n"; ?>
rand(11,30) = 29 rand(11,30) = 22
3. फ्लोट आर्गुमेंट्स — भिन्नात्मक भाग अनदेखा
<?php echo "rand(10.55, 50.95) = " . rand(10.55, 50.95) . "\n"; ?>
rand(10.5,50.95) = 45
10.55 → 10, 50.95 → 50 (पूर्णांक में कास्ट)।
4. स्ट्रिंग आर्गुमेंट्स — त्रुटि
<?php
// echo rand("aa", "bb"); // PHP Parse Error
?>
महत्वपूर्ण सीमाएँ और चेतावनियाँ
- क्रिप्टोग्राफ़िक रूप से असुरक्षित:
rand()अनुमानित है। **कभी भी** पासवर्ड, टोकन, सेशन ID के लिए उपयोग न करें। - Windows पर छोटी रेंज: पुराने Windows पर
getrandmax()केवल 32767 होता है। - ग्लोबल स्टेट:
srand()से प्रभावित होता है।
बेहतर विकल्प
| फ़ंक्शन | उपयोग | सुरक्षा |
|---|---|---|
mt_rand() | तेज़, बेहतर रैंडमनेस (मर्सन ट्विस्टर) | अभी भी क्रिप्टो-असुरक्षित |
random_int($min, $max) | क्रिप्टोग्राफ़िक रूप से सुरक्षित पूर्णांक (PHP 7+) | ✅ सुरक्षित |
random_bytes($len) | क्रिप्टोग्राफ़िक रूप से सुरक्षित बाइट्स | ✅ सुरक्षित |
सुरक्षित रैंडम पूर्णांक (PHP 7+)
<?php // क्रिप्टोग्राफ़िक रूप से सुरक्षित $secure = random_int(1, 100); echo "Secure random: $secure"; ?>
PHP संस्करण
PHP 4, PHP 5, PHP 7, PHP 8+ में उपलब्ध।