foreach
döngüsü, PHP'de özellikle diziler ve nesneler üzerinde döngü işlemleri gerçekleştirmek için kullanılan bir döngüdür. Dizilerdeki her elemanı sırasıyla işleyerek, kod bloğunun içinde belirttiğiniz işlemleri yapmanıza olanak tanır. İndeks tabanlı for
döngüsünün aksine, foreach
ile diziler üzerinde daha kolay ve doğrudan işlem yapabilirsiniz.
foreach
Döngüsünün Sözdizimi
foreach ($dizi as $eleman) {
// Yapılacak işlemler
}
- $dizi: İşlenecek dizi.
- $eleman: Dizinin her bir elemanını temsil eden geçici değişken. Döngü her çalıştığında, dizideki bir sonraki elemanı bu değişkene atar.
Anahtar-Değer Çiftleri ile Sözdizimi
Dizinin anahtarları ve değerleriyle de çalışabilirsiniz. Bunun için şu şekilde bir sözdizimi kullanılır:
foreach ($dizi as $anahtar => $deger) {
// Anahtar ve değere bağlı işlemler
}
- $anahtar: Dizinin her elemanının anahtarı (indeksi).
- $deger: Dizinin her elemanının değeri.
foreach
Döngüsünün Avantajları
- Kullanım kolaylığı: İndeksi takip etmeye gerek yoktur.
- Dizi yapıları için ideal: Dizilerin elemanlarını tek tek işlemek için tasarlanmıştır.
- Hata yapma riski daha düşük: İndeksle ilgili hatalarla karşılaşmazsınız.
- Okunabilirlik: Kodunuzu daha temiz ve anlaşılır hale getirir.
foreach
Döngüsü ile Örnekler
1. Basit Bir Dizi Üzerinde foreach
Döngüsü
$renkler = ["Kırmızı", "Yeşil", "Mavi", "Sarı"];
foreach ($renkler as $renk) {
echo $renk . "<br>";
}
- Bu örnekte,
$renkler
dizisinin her elemanı sırasıyla$renk
değişkenine atanır ve yazdırılır. - Çıktı:
Kırmızı Yeşil Mavi Sarı
2. Anahtar-Değer Çiftleri ile foreach
Döngüsü
Dizide anahtar-değer çiftleriyle çalışmak istiyorsanız, her iki bilgiyi de kullanabilirsiniz.
$yaslar = [
"Ali" => 25,
"Ayşe" => 22,
"Mehmet" => 30
];
foreach ($yaslar as $isim => $yas) {
echo "$isim'in yaşı $yas.<br>";
}
- Bu örnekte,
$isim
anahtarları,$yas
ise her anahtara karşılık gelen değerleri temsil eder. - Çıktı:
Ali'in yaşı 25. Ayşe'in yaşı 22. Mehmet'in yaşı 30.
3. Çok Boyutlu Dizi Üzerinde foreach
Döngüsü
Çok boyutlu dizilerle de foreach
döngüsü kullanılabilir.
$ogrenciler = [
["isim" => "Ali", "yas" => 18],
["isim" => "Ayşe", "yas" => 20],
["isim" => "Mehmet", "yas" => 22]
];
foreach ($ogrenciler as $ogrenci) {
echo "İsim: " . $ogrenci["isim"] . ", Yaş: " . $ogrenci["yas"] . "<br>";
}
- Bu örnekte, her öğrenci için dizideki isim ve yaş bilgileri yazdırılır.
- Çıktı:
İsim: Ali, Yaş: 18 İsim: Ayşe, Yaş: 20 İsim: Mehmet, Yaş: 22
4. foreach
Döngüsünde Referans Kullanımı
foreach
döngüsünde elemanlara referansla erişmek mümkündür. Bu, dizinin elemanlarını doğrudan değiştirmeye olanak tanır.
$sayilar = [1, 2, 3, 4, 5];
foreach ($sayilar as &$sayi) {
$sayi *= 2; // Her sayıyı iki katına çıkar
}
print_r($sayilar);
- Bu örnekte, her sayı iki katına çıkarılır ve dizideki değerler kalıcı olarak değiştirilir.
- Çıktı:
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
5. Anahtar-Değer Çiftlerinde Referans Kullanımı
Anahtar-değer çiftlerini kullanarak dizinin içeriklerini de referansla değiştirebilirsiniz.
$yaslar = [
"Ali" => 25,
"Ayşe" => 22,
"Mehmet" => 30
];
foreach ($yaslar as $isim => &$yas) {
$yas += 1; // Her kişinin yaşını 1 artır
}
print_r($yaslar);
- Bu örnekte, her kişinin yaşı bir artırılır.
- Çıktı:
Array ( [Ali] => 26 [Ayşe] => 23 [Mehmet] => 31 )
foreach
Döngüsünün Dezavantajları
- Sadece diziler ve nesneler üzerinde çalışır. Diğer veri türleri üzerinde kullanılamaz.
- Referans kullanıldığında dikkatli olunmalıdır; aksi takdirde beklenmedik değişiklikler meydana gelebilir.
Sonuç
PHP'deki
foreach
döngüsü, diziler üzerinde işlem yapmanın en kolay ve okunabilir yollarından biridir. Dizinin her bir elemanını sırasıyla işleyerek, her eleman üzerinde istenilen işlemleri kolayca gerçekleştirebilirsiniz. Özellikle dizilerin indekslerini takip etmek istemediğiniz durumlarda, foreach
döngüsü kodunuzu daha basit ve anlaşılır hale getirir.