Dizi-Değişkenler, Nesneler
PHP'de, diğer programlama dillerinde olduğu gibi, kullandığımız bilgileri, verileri değişken adını verdiğimiz kaplarda tuttuğumuzu biliyoruz. Bu kaplarla ne işler yapabileceğimizi de gördük. Fakat bu kapların sadece bir birim bilgi tuttuğunu farketmiş olmalısınız.
Oysa programlarımızda genellikle, sözgelimi "öğrencilerin adları" dediğimiz zaman yüzlerce ismi tutabilen kaplara ihtiyacımız olur. Aksi taktirde, öğrenci sayısı kadar değişken oluşturmamız gerekir ki, bu durumda değişken oluşturma zahmetinden vazgeçmek daha uygun olur, öğrencilerin isimleri, değişkene koymadan da kullanabiliriz.
İşte, bu tür, bir grup bilgili topluca tutan değişkenlere dizi-değişken (array) denir ve program boyunca işe yarayan değişken türü de budur.
PHP'nin diğer bir çok dilden farkını sağlayan bir özelliği, büyük ölçüde dizi değişkenlere dayanan, içinde kendi değişkenleri ve kendi fonksiyonları olan nesne (object) oluşturma imkanına sahip bulunmasıdır.
Bu açıdan PHP, nesne-yönelimli (Object-oriented) diller grubuna girer. Nesne oluşturmak ve kullanmak, bu yönteme alışık olmayan programcılar için önceleri çok zor görünür. Ancak bir kere nesne ile programlamanın özünü kavrayanların bir daha kolay kolay nesne fikrinden vazgeçtikleri de görülmemiştir.
Dizi Değişkenler
Dizi değişkenden ayrıntılı söz edebilmek için önce tipik bir dizi-değişkende neler olduğuna bakalım. Sözgelimi, verdiğiniz "PHP ile Programlama" eğitimindeki öğrencilerinizin listesi şöyle olabilir
Kod:
Öğrenci No Adı Soyadı Sınav-1 Sınav-2 Not1 Batuhan Kırımlı .. .. ..2 Serkan Koç .. .. ..3 Samet Fmtr .. .. ..4 Ares Fmtr .. .. ..5 TnT Fmtr .. .. ..
Dizi Değişken Oluşturalım
Şimdi, PHP bize öyle bir araç vermeli ki, biz bir kerede bu listenin tümünü, her bir ögesine sanki bir değişkenin değeri imiş gibi tek-tek, veya bir kaçına birden ulaşabilmeli ve arzu ettiğimiz zaman notları doldurabilmeliyiz.
Öğrenciler de yapacağımız Web sitesine girerek, kendi notlarını görebilmeli ve notlarını inceleyebilmeli. PHP'nin bu amaçla sağladığı araç, çok-boyutlu dizi-değişken oluşturma aracıdır. Ve bu araçla yukarıdaki listeyi aynen şöyle yapabiliriz. Aşağıda belirtmiş olduğum kodu dizi_degiskenler01.php adıyla kaydedin
PHP- Kodu:
<HTML>
<HEAD>
<TITLE>PHP'de Degiskenler</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY>
<B>
<H2>
<?php
$ogrenciler = array (
array ( adi => "Erre", soyadi => "FMTR", sinav1 =>"", sinav2 =>"", not =>""),
array ( adi => "aSii_GeNc", soyadi => "FMTR", sinav1 =>"", sinav2 =>"", not =>""),
array ( adi => "Ares", soyadi => "FMTR", sinav1 =>"", sinav2 =>"", not =>""),
array ( adi => "TnT", soyadi => "FMTR", sinav1 =>"", sinav2 =>"", not =>""),
);
// Buraya başka kodlar girecek
print $ogrenciler[0][adi];
?>
</H2>
</B>
</BODY>
</HTML>
Programdaki "print()" komutunu sadece dizi değişkeni doğru yazıp yazmadığımızı sınamak amacıyla yazdık, bu programı Browser'da açtığınızda yazdığınız ilk ismi Browser penceresinde görüyorsanız, dizi-değişkeni doğru şekilde oluşturdunuz demektir.
Burada, array() komutnu yazarken, süslü parantez değil, normal parantez kullandığımıza ve herbir elemanın değerlerinin sonunda virgül olduğuna dikkat edir. Bir diğer önemli nokta, endeks adları bir kelimeden fazla ise bunları tırnak içine alarak belirtmektir.
Örnek olarak belirtmemi isterseniz aşağıda belirttiğim gibi olmalıdır.
PHP- Kodu:
array ( adi => "Erre", soyadi => "FMTR", "Sinav 1 Notları" =>"", "Sinav 2 Notları" =>"", "Toplam Not Ortalamasi" =>"")