PHP Foreach Döngüsü


Php döngülerinden en popüler olan foreach döngüsüne kısaca giriş yapmaya çalışalım.

Döngüler yazılım çalışmalarının olmazsa olmazı ve pek çok dilde olduğu foreach döngüsü PHP dilinde en çok kullanılan döngülerden birtanesi.

Foreach Döngü Yapısı

<?PHP
$array = Array("Html","Css","Javascript");
foreach( $array as $item )
{
    echo $item . "\n";
}

Çıktı

Html
Css
Javascript

Yukarıda foreach döngüsünün en basit haliyle kullanımını gösterdik. Burada $item değişkeni ile ilgili ister echo ile çıktı alma, ister veritabanına kaydetme, isterseniz belli kontrollerle farklı her işlemi gerçekleştirebilirsiniz.


İlişkisel (Özelleştirilmiş) Dizi Elemanlarında Foreach Döngüsü

Tek boyutlu dizilerde bir önceki örneğimizdeki gibi direk dizi içerisindeki elemanlarına direk erişim sağlıyorduk. Şimdi çok boyutlu dizi değişkeni üzerinden çalışmamızı yapalım

<?PHP
$array = Array("label"=>"PHP Dersleri","url"=>"https://phpdersleri.com","author"=>"PHP Coders");
foreach( $array as $key => $item )
{
    echo $key . " : " . $item . "\n";
}

Bu çalışmanın öncekinden farkı, dizi içerisindeki değerleri taşıyan anahtar isimlerini $key değişkeni ile aldık. Çıktımız aşağıdaki şekilde olacak;

label : PHP Dersleri
url : https://phpdersleri.com
author : PHP Coders

Son örneğimizdeki çalışma üzerinde $key değişkenini kullanmamış olsaydık ilk yapımızdaki gibi düz bi çıktı olacaktır.

<?PHP
$array = Array("label"=>"PHP Dersleri","url"=>"https://phpdersleri.com","author"=>"PHP Coders");
foreach( $array as $item )
{
    echo $item . "\n";
}
PHP Dersleri
https://phpdersleri.com
PHP Coders

Son olarak belirtmek istiyorum ki foreach üzerinde array veya object harici türde, yinelenebilir (Iterable) olmayan değişkenleri döndürmeye kalktığınızda hata alırsınız. Kod yapınıza bir şekilde bu konuda güvenmediğiniz esnada aşağıdaki gibi bir kontrol yapısı kullanabilirsiniz.

<?PHP
if ( count((array)$my_items) )
{
    foreach( $my_items as $my_item )
    {
        // döngü içi işlemler
    }
}

Evet, bu sayede $my_items değişkeninin değerinden emin olamadığınız durumlarda bu yapıyı kullanıp oluşabilecek hataların önüne geçmiş olursunuz. Foreach döngüsü ile ilgili ileri düzey çalışmalar için başka bir makalede görüşmek üzere.