PHP Rastgele (Random) Sayı Üreme / rand() Fonksiyonu

  • Konuyu başlatan Konuyu başlatan bazinga
  • Başlangıç tarihi Başlangıç tarihi

bazinga

Konu Sahibi
Admin
Katılım
1 Şubat 2007
Mesajlar
94,613
Reaksiyon puanı
51,769
Puanı
1,060
Konum
İstanbul
Web Sitesi
izleryazar.com
Uzun kodlamalar gerektiren veya oldukca komplike bir sayıda işlem PHP tarafından oldukça pratik fonksiyonlar haline getirilmiştir. İşte bu fonkiyonlardan bir taneside rastgele sayılar üretmek için kullanacağımız rand() fonksiyonudur. Kullanımı inanılmaz kolay olduğu gibi bize tek bir değişkene veya diziye (array) rastgele sayılara atama seçenekleri de sunar.
Rastgele sayı yani rand() fonksiyonu nasıl kullanılır?

$rastgeleSayi = rand(); echo $rastgeleSayi; Evet kullanımı bu kadar basit. sadece rand() fonksiyonunu bir değişkene atamanız veya dire echo komutu ile ekrana yazdırmanız yeterli.
Peki hangi sayılar aralığında rasgele bir sayı oluşturduk?

Aklınıza takılan bu soruyu duyar gibiyim. Rastgele sayı üretmek fonksiyonumuzu yukarıdaki gibi en yalım haliyle kullandığımızda en düşük değer 0 (sıfır) olur, en yüksek değer ise kullandığınız servera göre değişiklik gösterir. Fakat genellikle maksimum değer 32768 veya 32767 olarak atanmaktadır.
Sunucumun (server) maksimum sayı değerini nasıl öğrenebilirim?
Yazının ilk başında da söylediğim gibi PHP ‘de foksiyon konusunda yok yok. Rastgele sayınızın alabileceği en yüksek değeri öğrenmek için getrandmax() fonksiyonunu kullanıyoruz.
echo getrandmax(); getrandmax() fonkiyonunu yukarıdaki gibi kullanarak en yüksek değeri görebilirsiniz.
Rastgele sayı oluştururken minimum ve maksimum değeri sizde atayabilirsiniz.

rand() fonksiyonu ile sizin belirlediğiniz sayı aralığında rasgele bir değer oluşturmanızda mümkün.
$rastgeleSayi = rand(1,100); echo 'Rasgele sayımız : ' . $rastgeleSayi; Yukarıdaki gibi bir kullanım PHP 1 (bir) ile 100 (yüz) aralığında bir sayı üretir. Kodlardan da anlayacağınız üzere parantez içerisine ilk önce minimum sayıyı ve virgül (,) ile ayırara ikinci olarak maksimum sayıyı yazmanız yeterli olacaktir.
Rastgele Sayılardan oluşan bir dizi (array) oluşturalım

Sadece tek bir değişkene rastgele sayı atamak yerine bir diziye rastgele sayılar atamaya ihtiyaç duyabilirsiniz. Bu işlemi yapmak için bir fonksiyon oluşturmamız gerekiyor.
function rastgeleSayilar($min,$max,$adet) { for ($i=0; $i<$adet+1; $i++) { $s1=rand($min,$max); $ayni=0; for ($i2=0;$i2<=$i;$i2++) {if ($sayilar[$i2]==$s1){$i=$i-1;$ayni=1;}} if ($ayni==0) {$sayilar[$i]=$s1;} } return $sayilar; } Fonksiyonumuzu oluşturduktan sonra aşağıdaki gibi kullanabilirsiniz;
$sayilar = array(); $sayilar = rastgeleSayilar(1,100,10); Yukarıdaki oluşturduğumuz rastgeleSayilar() fonksiyonuna (minimum sayi, maksimum sayi, sayı adeti) parametlerelerini vererek $sayılar değişkenine 10 adet 1 ile 100 arası rastgele sayı atamış olduk.
Bu sayıları ekrana yazdıralım;
foreach($sayilar as $rastgeleSayi){ echo $rastgeleSayi. '<br />'; } foreach ile bir döngü oluşturarak dizimizdeki rastgele sayıları alt alta yazdırdık.
PHP ‘nin orjinal sitesinden

  • rand() fonksiyonu hakkında daha çok bilgi için buraya.
  • getrandmax() fonksitonu için ise buraya tıklayabilirsiniz.