⊗ppPmLpFl 124 of 447 menu

PHP'de Bayraklarla Çalışma

Şimdi bayraklarla çalışmayı öğreneceğiz. Bayrak, yalnızca iki değer alabilen özel bir değişkendir: true ve false. Bayraklar kullanılarak, bir şeyin yokluğunu kontrol eden problemler çözülebilir: örneğin, bir dizide belirli bir değere sahip bir öğenin olmadığını kontrol edebiliriz. Hadi başlayalım.

Şu problemi çözelim: sayılardan oluşan bir dizi veriliyor, içinde değeri 3 olan bir öğe olup olmadığını kontrol etmemiz gerekiyor. Varsa '+++' yazdıralım, yoksa '---' yazdıralım.

Öncelikle '+++' yazdırmayı deneyelim. Bunun için dizimizin tüm öğelerini döngüyle gezelim ve bir if ile mevcut öğenin değeri 3'e eşit mi diye soralım. Eşitse '+++' yazdıralım:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; } } ?>

Ancak çözümümüz pek iyi değil: çünkü eğer dizide bir tane değil de birden fazla 3 değeri varsa, '+++' birden fazla kez yazdırılacaktır. Dizimizi düzenleyip (içinde iki tane 3 değeri olan öğe yapalım) ve bundan emin olalım:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // birden fazla kez yazdırır } } ?>

Sorunu düzeltelim: eğer öğe zaten bulunduysa, break kullanarak döngüyü sonlandıralım:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // döngüyü sonlandır } } ?>

Şimdi, eğer dizide hiç 3 değerine sahip öğe yoksa, '---' yazdırılacak şekilde yapmaya çalışalım. Yaygın bir yanlış anlama, if'imize else eklemektir - bu durumda '---', 3 olmayan tüm öğeler için yazdırılacaktır:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // 3 numaralı öğede yazdırır } else { echo '---'; // 1, 2, 4, 5 numaralı öğelerde yazdırır } } ?>

Sonuç olarak, else ekleme fikri kötü ve çalışmayan bir fikirdir. Bu tür problemleri (bu tür problemler oldukça sık karşılaşılır) çözmek için sözde bayraklar kullanılır.

Yukarıda da belirtildiği gibi, bayrak, yalnızca iki değer alabilen bir değişkendir: true veya false.

Pekala, flag adında bir değişken yapalım. Şu anlama gelsin: eğer true ise, dizide 3 öğesi vardır, eğer false ise, böyle bir öğe yoktur.

Başlangıçta flag değişkenini false değerine ayarlayalım - yani dizide 3 öğesi olmadığını varsayalım:

$arr = [1, 2, 3, 4, 5]; $flag = false; // dizide 3 öğesinin olmadığını varsayıyoruz

Daha sonra, daha önce yaptığımız gibi bir if ile bir döngü başlatalım. Eğer döngü dizide 3 öğesi olduğunu tespit ederse, flag değişkenini true değerine ayarlayalım ve break ile döngüden çıkalım:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // dizide 3 öğesinin olmadığını varsayıyoruz foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // öğe var - $flag değişkenini yeniden tanımla break; // döngüden çık } } ?>

Dizide 3 olup olmadığı sorusunun cevabını yalnızca döngüden sonra verebiliriz. Ve bu cevabı zaten elimizde var: döngüden sonra flag değişkeni false olarak kalabilir veya eğer döngü dizide 3 bulduysa değerini true olarak değiştirmiş olabilir:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // burada $flag değişkeni ya true ya da false'dur ?>

Şimdi döngüden sonra, flag değişkenine bakacak ve ekrana '+++' veya '---' yazdıracak bir if yapabiliriz:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } if ($flag === true) { echo '+++'; } else { echo '---'; } ?>

Bir dizi veriliyor:

<?php $arr = ['a', 'b', 'c', 'd', 'e']; ?>

Bu dizide 'c' öğesinin olup olmadığını kontrol edin. Varsa '+++' yazdırın, yoksa '---' yazdırın.

Bir sayının asal olup olmadığını kontrol eden kodu yazın. Asal sayı yalnızca bire ve kendisine bölünür, başka sayılara bölünmez.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet