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,
$renklerdizisinin her elemanı sırasıyla$renkdeğ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,
$isimanahtarları,$yasise 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.