Karar yapıları her programlama dilinde olmazsa olmazlardan bir tanesidir. Karar yapıları programın akışını belirtilen koşula göre belirlememizi sağlar. Php dilindeki karar yapıları if ve switch karar yapıları olmak üzere iki tanedir. Php ve diğer dillerde en sık kullanılan karar yapısı if karar yapısıdır. Karar yapıları operatörler ile birlikte kullanılmaktır. Eğer operatörler hakkında bir fikriniz yoksa Php Operatörler ve Kullanım Şekilleri konusunu inceleyebilirsiniz.
Php If (Eğer)
Php programlamada if karar yapısı en sık kullanılan bir yapıdır. Aslında her dilde en sık kullanılan karar yapısı if karar yapısıdır. Diğer diller de ve php dilinde if karar yapısının çalışma mantığı aynıdır. Koşul ya da koşullar sağlanıyorsa if karar yapısının kapsadığı kodlar çalışır. Aşağıdaki örnekte kod yapısını inceleyelim.
<?php $sayi = 5; if($sayi == 5){ echo 'Sayı değişkeninin değeri 5`tir'; } ?>
Yukarıdaki örnekte koşul sağlandığı için if bloğu içerisindeki kodlar çalışacaktır. Eğer koşul sağlanmasaydı if bloğunun sonuna atlanacaktır. Birden fazla koşulda nasıl kullanılacağını aşağıdaki örnekte inceleyelim.
<?php $sayi = 7; if($sayi > 3 && $sayi < 10){ echo 'Sayi değişkeni 3`ten büyük 10`dan küçüktür.'; } ?>
Yukarıdaki örnekte if bloğundaki kodların çalışması için her iki koşulunda sağlanması gerekmektedir. Ve operatörü ile kullandığımız için sayı değişkeni hem 3’ten büyük olmak zorunda hem de 10’dan küçük olmak zorunda böylece koşul sağlanacak ve if bloğu arasındaki kodlar çalışacaktır.
Php Operatörler ve Kullanım Şekilleri konusunda && (ampersand) işaretinin ve kelime anlamında kullanıldığını göstermiştim. Programlama dillerinde iki tane yan yana ampersand(&&) işareti ve anlamına gelmektedir. Veya kelime anlamında ise yan yana iki tane düz çizgi(||) kullanılmaktadır. Veya operatörü ile kullanımı aşağıda inceleyelim.
<?php $sayi = 5; if($sayi < 3 || $sayi == 5){ echo 'Koşul sağlandı'; } ?>
Yukarıdaki örnekte veya(||) operatörünü kullandığımız için iki koşuldan sadece bir tanesinin sağlanması if bloğunun çalışması için yeterli olacaktır. Bu durumda sayı değişkeni 3’den küçük değildir fakat 5’e eşit olduğu için koşul sağlanır ve if bloğundaki kodlar çalışır.
Php Else If (Eğer Değilse)
Bazı durumlarda program akışı sırasında değişken değeri değişebilir ve birden fazla farklı değere sahip olabilir. Bu durumda yeni koşullar ile değişken değerini kontrol ederek program akışını yönetebiliriz. Örneğin değişkenin değeri a iken bir işlem b iken farklı bir işlem yapmak isteyebilirsiniz. Bu durumda if koşuluna yeni koşullar eklemek için else if komutu komutu kullanılır. Aşağıdaki örnekte kullanımı inceleyelim.
<?php $sayi = 6; if($sayi == 5){ echo 'Sayı değişkeni 5`tir'; }else if ($sayi > 2){ echo 'Sayı değişkeni 2`den büyüktür.'; }else if($sayi == 8){ echo 'Sayı değişkeni 8`e eşittir.'; } ?>
Yukarıdaki örnekte sayı değişkeni üç farklı koşul ile kontrol edilmiştir. Koşulların açıklaması aşağıdaki listeden inceleyelim.
- İlk koşulda sayı değişkeninin 5’e eşit olup olmadığı kontrol edilmiştir ve koşul sağlanmadığı için ikinci koşula geçilmiştir.
- İkinci koşulda sayı değişkeni 2’den büyük olduğu için koşul sağlanmıştır ve ikinci else if bloğu aralığındaki kodlar çalıştırılmıştır.
- İkinci koşul sağlandığı için üçüncü koşula bakılmadan program karar yapısının dışından kaldığı yerden devam edecektir.
Burada dikkat edilmesi gereken konu koşulların sıra ile kontrol edilmesidir. Eğer bir koşul sağlanırsa diğer koşullara bakılmaksınız program akışı kaldığı yerden devam eder. Ayrıca ilk önce if komutu sunmanız gerekir, else if komutu tek kullanılamaz.
Php Else (Hiçbiri Değilse)
Tüm koşulların kontrolünden sonra hiçbir koşul sağlanmıyor else bloğu içerisindeki kodlar çalışacaktır. Eğer tüm koşullar sağlanmadığında bir işlem yaptırmak istiyorsanız else bloğu devreye girecek ve yardımınıza yetişecektir. Kullanımı aşağıdaki örnekte inceleyelim.
<?php $sayi = 10; if($sayi == 5){ echo 'Değer 5`tir.'; }else{ echo 'Değer 5 değildir.'; } ?>
Yukarıdaki örnekte koşul sağlanmadı için else bloğu arasındaki kod çalışacaktır. Else bloğu hiçbir koşulun sağlanmadığı durumda devreye girmektedir. Aşağıdaki örnekte birden fazla koşul ile inceleyelim.
<?php $sayi = 10; if($sayi == 4){ echo 'Sayı değeri 4`tür.'; }else if ( $sayi < 5){ echo 'Sayı değeri 5`ten küçüktür.'; }else if ($sayi > 15){ echo 'Sayı değeri 15`ten büyüktür.'; }else{ echo 'Koşullar sağlanmadı.'; } ?>
Yukarıdaki örnekte üç farklı koşul verilmiştir. Üç koşulun hiç biri sağlanmadığı için else bloğu çalışacaktır. Genel kullanımı bu şekildedir. Bir yada daha fazla koşul gerçekleşmediğinde yaptırmak istediklerimizi else bloğu arasına yazarız.
Php Kısa If Kullanımı
Kısa if kullanımı da oldukça sık kullanılan özel bir yapıdır. Kısa kullanımından dolayı zaman kazandırır. Sadece koşulun sağlanması ve sağlanmaması şartı ile çalışır. Aşağıdaki örnekte yapıyı inceleyelim.
<?php $sayi = 5; echo $sayi == 5 ? 'Sayı 5`e eşittir' : 'Sayı 5 değildir.'; ?>
Yukarıdaki örneği incelediğimizde kısa if kullanımının sadece if ve else durumlarını kontrol ettiğiniz rahatlıkla görebiliyoruz. Bu kullanımı değişkene değer yüklemek için kullanmakta mümkündür.
<?php $sayi = 2; $a = $sayi == 2 ? 'Sayı 2' : ' Sayı 2 değil'; echo $a; ?>
Yukarıdaki örnekte bir öncekinden farklı olarak sayı değişkenin durumunu kontrol edip a değişkenine değer atadık ve daha sonra ekrana yazdırdık. Genel kullanım bu şekilde. Normal if kullanımından bir farkı yok farklı operatörler ile farklı koşullar oluşturmak mümkün.
Switch
Switch yapısı, if yapısına göre biraz daha farklıdır. Operatörler ile koşul belirtmemize izin vermez. Direk değişkenin değerine göre işlem yapmamıza olanak sağlar.
<?php $a = 6; switch($a){ case 1: echo 'Değişken değeri 1'; break; case 2: echo 'Değişken değer 2'; break; default: echo 'Değişken değer 1 yada 2 değildir'; break; } ?>
Yukarıda basit bir örnek ile a değişkenin değerini herhangi bir koşul operatörü kullanmadan kontrol ettik. Switch yapısında koşullar case komutu ile art arda yazılmaktadır. Her case bir koşul demektir. Bir case koşulunun sınırı break komutu ile belirlenir. Default komutu ise burada else komutuna denk gelmektedir. Hiçbir koşul sağlanmadığında default bloğu çalışır ve break komutu ile sonlandırılır.
Eğer case koşulunu break komutu ile sonlandırmazsak koşulun sağlandığı satırdan sonraki tüm satırlarda çalıştırılacak ve çalışmasını istediğimiz kodlarında çalışmasına neden olacağı için program akışını istediğimiz gibi yönlendirememiş olacağız. Her case bloğunu break ile sonlandırmayı unutmayın.
Son olarak switch yapısında farklı durumlarda aynı işlemi yaptırmak içinde bir kullanım şekli vardır. Aşağıdaki örnekten inceleyelim.
<?php $a = 5; switch($a){ case 1: case 2: case 3: case 4: echo 'Sayı 5 değil'; break; case 5: echo 'Sayı 5'; break; } ?>
Switch yapısında değişken farklı değerlere sahipken aynı işlemi yaptırmak için kullanılan yapılan işlem yukarıdaki örnekteki gibidir. Burada mantığı anladıktan sonra kendi projelerinizde sayfa yönlendirme işlemi için kullanabilirsiniz. Dilerseniz Php resmi sitesindeki if ve switch yapılarının kullanımlarını inceleyebilirsiniz.