Akış Kontrolü ve Döngüler
Şartlı İfadeler if (şartlar) { //Doğruysa yapılacaklar } else { //Yanlışsa yapılacaklar }
Örnek <?php if (true) echo "Bu görünür!<BR>"; if (false) { echo “Bu asla görünmez.<BR>"; } else { echo “Bu da görünür!<BR>"; } ?>
Hatırlayalım == != === !== > < <> >= <= Operatör Açıklama Örnek Sonuç == Değerleri eşit mi? 5==8 yanlış != Eşit değil mi? 5!=8 doğru === Değerleri ve tipleri aynı mı? $a = 5; $b = “5”; $a === $b !== Değerleri ve tipleri aynı değil mi? > Büyük mü? 5>8 < Küçük mü? 5<8 <> 5<>8 >= Büyük veya eşit mi? 5>=8 <= Küçük veya eşit mi? 5<=8
Sonuç Ne Olur? <?php $tamamlananSayfa = 14; if ($tamamlananSayfa < 15) { echo “Henüz uyuyamazsın.<BR>"; } else { echo “Başarılar, şimdi uyuyabilirsin!!<BR>"; } ?>
Sonuç Ne Olur? <?php $bittimi = true; $tamamlananSayfa = 14; if (($tamamlananSayfa >= 15) || ($bittimi)) { echo "Başarılar, şimdi uyuyabilirsin!!<BR>"; } else { echo "Henüz uyuyamazsın.<BR>"; } ?>
elseif Kullanımı if (şartlar) { //Doğruysa yapılacaklar } elseif (şartlar) { /*if’ten sonraki şartlar yanlış fakat elseif’ten sonraki şartlar doğruysa yapılacaklar */ } else { //Her iki şartta yanlışsa yapılacaklar. }
Örnek <?php $isim = “Ali"; if ($isim == “Hakan") { echo ‘Merhaba Hakan'; } elseif ($isim == “Ayşe") { echo ‘Merhaba Ayşe'; } else { echo ‘Sen Ayşe ya da Hakan değilsin.'; } ?>
Başka bir örnek <?php <?php // Ortada değişken diye bir değişken yok ve tanımlanmadı... if (isset($degisken)){ echo "Değer atanmıştır. <br />"; if (empty($degisken)){ echo "İçi boştur. <br />"; } else { echo "İçi doludur. <br />"; } else { echo "Değer atanmamıştır. <br />"; } // Değişkeni tanımladım ama içi boş... $degisken = ""; // İçine bir değer atadım $degisken = "123"; // Değişkeni sildim... unset($degisken); ?> <?php // Ortada değişken diye bir değişken yok ve tanımlanmadı... if (isset($degisken)){ echo "Değer atanmıştır. <br />"; if (empty($degisken)){ echo "İçi boştur. <br />"; } else { echo "İçi doludur. <br />"; } else { echo "Değer atanmamıştır. <br />"; } // Değişkeni tanımladım ama içi boş... $degisken = ""; // İçine bir değer atadım $degisken = "123"; // Değişkeni sildim... unset($degisken); ?>
switch Bildirisi switch ($degisken) { case <ifade1> : // $degisken ifade1’e eşitse işlenecek komutlar break; case <ifade2> : // Varsa karşılaştırma için verilen diğer ifadeler default : // $degisken yukarıda verilen hiç bir ifadeye eşit değilse işlenecek komutlar } 10
switch Case ifadesinden sonra verilen değerler sadece sayısal olmak zorunda değildir, metinsel değerlerde olabilir. Case “İstanbul”: Veya Case 34:
Örnek <?php $arabaModel = “Corolla"; switch ($arabaModel){ case “Corolla" : echo "Toyota"; break; case “Focus" : echo "Ford"; default : echo “bilinmiyor..."; } ?>
for Döngüsü for ( ‘başlangıç''; '‘şart ifadesi''; '‘döngü ifadesi'' ) { // döngü boyunca işlenecek komutlar } Başlangıç: $i = 1 Şart İfadesi: $i < 10 Döngü İfadesi: $i++
Örnek <?php echo "Yüze kadar sayalım <br />"; for ($i=1; $i<101; $i++) { echo $i."<br />"; } ?>
Örnek <?php $j = 10; for ($i=0; $i<10; $i++) { $j += $j; echo $j."<br />"; } ?>
while Döngüsü <?php while ('‘şart'') { // döngüde işlenecek komutlar } ?> Değerlendirme önce yapılır, sonra işlemler yapılır.
Sonuç ne olur? <?php $sayac = 0; while ( $sayac < 100 ) { $sayac = $sayac + 10; echo $sayac."<br />"; } ?>
Örnek <?php $sayi = 1; while ($sayi <= 300) { if ( ($sayi % 3) == 0) { echo "$sayi 3'e tam olarak bölünür.<BR>"; } $sayi++; ?>
do ... while döngüsü <?php do { '' döngüde işlenecek komutlar'' } while ('‘şart'') ?>
Örnek <?php $i = 10; do { echo $i."<br>";; $i--; } while ($i > 0) ?>
Örnek <?php for ($sayi = 1; $sayi <= 300; $sayi++) { if ( ($sayi % 3) == 0) { echo "$sayi 3'e tam olarak bölünebilir!<BR>"; } ?>
Aşağıdaki kod ne işe yarar? <?php $goster = true; if($goster) { echo "<IMG SRC=\"resim1.jpg\">"; } ?>
Peki bu kod nasıl çalışır? <?php $isim = "Ali"; if ($isim == "Hakan") { ?> Merhaba Hakan <?php } elseif ($isim == "Ayşe") { ?> Merhaba Ayşe <?php } else { ?> Sen Ayşe ya da Hakan değilsin. <?php } ?>
Döngüyü Kırmak - break for ($i = 0; $i < 1000; $i++) { if ($i == 10) { break; }
Örnek – Problem çoklu kırma for ($i = 0; $i < 1000; $i++) { for ($x = 0; $x < 100; $x++) { if ($x == 10) { break; }
break n <?php for ($i = 0; $i < 1000; $i++) { for ($x = 0; $x < 100; $x++) { if ($x == 10) { break 2; } ?>
continue Break kullanıldığında döngü sırasında yapılacak diğer komutlar atlanır ve döngü kırılır. Continue kullanıldığında ise döngü kırılmadan, sadece mevcut döngü sırasındaki yapılacak komutların atlanılması sağlanır.
goto <?php goto a; echo 'Ali'; a: echo 'Veli'; ?>
goto Aynı dosya içerisinde olmalı. Fonksiyon içinden dışına, dışından içine gidilemez. Döngü içerisine girilemez. Döngü dışına çıkılabilir, yani break yerine kullanılabilir. Mümkünse kullanmayın.