PHP Dizi İşaretçileri Konusu ve Each Fonksiyonu

PHP Dizi İşaretçileri Konusu ve Each Fonksiyonu

PHP dizi işaretçileri, bir dizi nesnesinde içerisindeki elemanlara sistemin odaklanması, işaretlemesi ve bu işaretleri kullanarak dizi içerisinde işlemlerin yapılabilmesinin sağlandığı konuyu anlatır. Hazır PHP dizi fonksiyonları içerisinde yer alan dizi işaretçi fonksiyonları ile dizi işlemlerini yapmak çok daha kolay hale gelir.

PHP Dizi İşaretçileri

Dizi işaretçileri, dizi içerisinde odaklanılan elemanlarla ilgili yapılan işlemlere verilen isimdir. Dizi işaretçileri ile dizi içerisinde bütün elemanlar arasında adım adım gezilerek işlemler yapılabilir. Dizi ilk oluşturulduğunda varsayılan olarak geçerli eleman dizinin ilk elemanıdır.

Örnek olarak each fonksiyonu ile her seferinde bir sonraki veriyi işaretleme mantığıyla bir dizideki bütün elemanları gezerek her elemanla teker teker işlem yapılabilir. Aşağıda örnek verilebilecek bazı dizi işaretçileri fonksiyonlarından bahsettim.

$veriler = array(
     'veri 1',
     'veri 2',
     'veri 3',
     'veri 4',
     'veri 5',
     'veri 6'
 );

Aşağıdaki dizi işaretçisi fonksiyonlarını yukarıdaki dizi üzerinden kullanacağız.

current() fonksiyonu

Dizi ilk oluşturulduğunda odaklanılan ve bilgisayar üzerinde referans olarak gözüken değer dizideki ilk elemandır. Current fonksiyonu çalıştırıldığında dizinin ilk elemanının değeri yazdırılacaktır.

echo current($veriler); //çıktı: veri 1

pos() fonksiyonu

Current fonksiyonu gibi dizinin odaklanılan değerini döndürür. Eğer dizi yeni oluşturulduysa dizinin ilk elemanının değerini getirir.

echo pos($veriler); //çıktı: veri 1

end() fonksiyonu

Dizide sonuncu elemanı getirme işini yapar ve dizinin odaklanılan elemanı sonuncu eleman olarak işaretlenir.

echo end($veriler); //çıktı: veri 6
echo pos($veriler); //çıktı: veri 6

reset() fonksiyonu

Dizideki işaretleme ve odaklama işlemlerini sıfırlar ve dizinin ilk değeri tekrar işaretlenir ve dizinin odaklanılan elemanını geri döndürür. Reset fonksiyonu ile işaretleyici sıfırlama işlemi sonrasında current fonksiyonu yada pos fonksiyonu kullanımında tekrar dizinin ilk değeri elde edilir.

echo reset($veriler); //çıktı: veri 1
echo current($veriler); //çıktı: veri 1

next() fonksiyonu

Dizideki odaklanılan veriden bir sonraki eleman işaretlenir ve işaretlenen elemanın değerini geri döndürür. Yani dizide bir sonraki elemanın değerini getirmiş olur.

echo next($veriler); //çıktı: veri 2

prev() fonksiyonu

Dizideki odaklanılan veriden bir önceki eleman işaretlenir ve işaretlenen elemanın değerini geri döndürür. Yani dizide bir önceki elemanın değerini getirmiş olur.

echo prev($veriler); //çıktı: veri 1

Şimdi dizi işaretçilerini kullanarak while döngüsü ile dizinin bütün elemanlarını baştan sona yazdıran bir uygulama yapalım.

while($deger = current($veriler)){
     echo $deger.'
'; next($veriler); } /* --çıktı-- veri 1 veri 2 veri 3 veri 4 veri 5 veri 6 */

Yukarıdaki
örneğin çalışma mantığı:
Dizi ilk oluşturulduğundan
dolayı current fonksiyonu ile dizinin ilk elemanı odaklanılmış
olduğu için while döngüsünde ilk değer, dizinin ilk elemanıdır.
Bu değeri ekrana yazdırıp, sonrasında dizi işaretçisini bir
arttırıyoruz. Böylece döngü dizinin son verisine kadar dönerek
dizinin bütün elemanlarını ekrana yazma işlemini
gerçekleştiriyor. Dizinin son elemanının ekrana yazdırılması
sırasında next fonksiyonu ile dizide elemana eşit olmayan bir
işaretleme işlemi gerçekleşeceğinden dolayı, artık while
döngüsüne diziden değer gelmeyecektir ve döngü sonlanacaktır.

Bu mantıkla şimdi de dizi işaretçileri ile dizinin bütün elemanlarını sondan başa yazdırma işleminin yapılışını görelim.

$veriler = array(
     'veri 1',
     'veri 2',
     'veri 3',
     'veri 4',
     'veri 5',
     'veri 6'
);
end($veriler);
while($deger = current($veriler)){
     echo $deger.'
'; prev($veriler); } /* --çıktı-- veri 6 veri 5 veri 4 veri 3 veri 2 veri 1 */

PHP each() fonksiyonu

Dizinin anahtarı ve elemanını getirmek için kullanılır. Fonksiyon her veriyi getirişinde dizideki bir sonraki veriyi işaretler. Döngü içerisinde kullanılması ile dizideki bütün elemanları ve anahtarları teker teker gezer ve dizide gezecek eleman bittiğinde işlem biter Each fonksiyonu ile aynı dizi üzerinde işlem yapılmak istenir ise reset fonksiyonu ile dizi üzerindeki işaretleme işlemini temizlemesi gerekir. Böylece aynı dizi ile tekrar işlem yapılabilir. Each fonksiyonu kullanımı aşağıdaki gibidir.

$denizler = array(
     'Akdeniz',
     'Karadeniz',
     'Ege Denizi',
     'Marmara Denizi'
 );
 while($deniz = each($denizler)){
  echo $deniz[0].'='.$deniz[1].'
'; } /* --çıktı-- 0=Akdeniz 1=Karadeniz 2=Ege Denizi 3=Marmara Denizi */ reset($denizler); while($deniz = each($denizler)){ echo $deniz[0].'='.$deniz[1].'
'; } /* --çıktı-- 0=Akdeniz 1=Karadeniz 2=Ege Denizi 3=Marmara Denizi */
Yorum Yap
0 Yorum yapan