Merhaba, PHP yazılarımla bloguma devam ediyorum. Bu yazımda PHP “invalid argument supplied for foreach()” Hatası Çözümü ‘ne bakacağız.
PHP “invalid argument supplied for foreach()” Hatası Çözümü
PHP‘nin yerleşik foreach() istemi, bir dizi veya nesne olarak tanınmayan bir veri yapısı üzerinde yineleme yapmaya çalıştığında ortaya çıkar.
Aşağıdaki kod parçasına bir bakalım.
<?php function getList () { // Burada bir hata oluştuğunu ve bir liste/dizi yerine bir boolean FALSE döndürüldüğünü varsayın. return false; } // Diziyi bir işlev çağrısından alın. $myList = getList(); // $myList dizisinde dolaşın. foreach($myList as $arrayItem) { //Birşeyler yap. } ?>
Hata, getList() işlevin bir dizi yerine bir bool değeri döndürmesi nedeniyle oluştu. foreach() Komut yalnızca diziler veya nesneler üzerinde yinelenebilir . foreach() Bu hatayı çözmek için, hatanın önüne geçilebilmesi için fonksiyondan önce bir kontrol yapın. Bu çözüm aşağıdaki kodda gösterilmiştir:
<?php function getList () { // Burada bir hata oluştuğunu ve bir liste/dizi yerine bir boolean FALSE döndürüldüğünü varsayın. return false; } // Diziyi bir işlev çağrısından alın. $myList = getList(); // $myList'in gerçekten bir dizi mi yoksa bir nesne mi olduğunu kontrol edin. if (is_array($myList) || is_object($myList)) { // Evetse, foreach() üzerinde yinelenir. foreach($myList as $arrayItem){ //Birşeyler yap } } else // $myList bir dizi değilse, bu blok yürütülür. { echo "Maalesef bir hata oluştu."; } ?>
Bu şekilde bu hatanın önüne geçebilirsiniz. Yada foreach() ile kullanacağınız değişkenin bir dizi olduğundan veya doğru bir şekilde doldurulduğundan emin olun.
Ben genelde veri tabanından verileri çekip göstermek istediğimde ama veri gelmediği durumlarda yaşıyorum. Aslında her şey normal görünüyor ama veri tabanından gelen veri olmadığı için foreach() ile kullandığım değişkenim boş kalıyor ve hata veriyor.
PHP “invalid argument supplied for foreach()” Hatası Çözümü yazımda bu kadardı. Diğer yazılarda görüşmek üzere….
PHP Dersleri için başlattığım repoya bağlantıya tıklayarak ulaşabilirsiniz. Tüm PHP yazılarım için tıklayabilirsiniz.
Kodla kalın. :)