Php ile daha önce if-else-elseif yapısından bahsetmiştim. Kısa yapılar için if-else kullanımı uygun olsa da daha uzun yapılada switch-case yapısı kullanmak daha mantıklıdır. Belirli bir yapının sonucu değiştikçe kullanıcıya belirlediğiniz değerleri döndürür. Kullanımı oldukça basittir. Birkaç örnekle daha detaylı anlatalım.
switch(VERİ)
{
case 'SEÇİM1':
echo 'Dönecek Değer';
break;
case 'SEÇİM2':
echo 'Dönecek Değer';
break;
case 'SEÇİM3':
echo 'Dönecek Değer';
break;
case 'SEÇİM4':
echo 'Dönecek Değer';
break;
default:
echo 'Varsayılan Dönecek Değer';
break;
}
Kullanımı bu şekildedir. Yani VERİ'nin değeri SEÇİM4 ise o kısım çalışacaktır. Şimdi mantıksal bir örnek yapalım ve GET ile kişinin cinsiyetini gönderelim bir form aracılığı ile karşılığında ekrana switch-case yapısıyla cinsiyeti yazdıralım. İki işlemi aynı sayfada yapacağım sizlerde kodu kopyalayıp php dosyası olarak kayıt ederek test edebilirsiniz.
<form action="" method="GET">
<select name="cinsiyet">
<option value="na">Belirtmek istemiyorum.</option>
<option value="erkek">Erkek</option>
<option value="kadin">Kadın</option>
</select>
<button type="submit" name="cinsiyetyazdir">Ekrana Yazdır</button>
</form>
<?php
if(isset($_GET['cinsiyetyazdir']))
{
$cinsiyet=$_GET['cinsiyet'];
switch($cinsiyet)
{
case 'erkek':
echo 'Erkek olarak belirlediniz.';
break;
case 'kadin':
echo 'Kadın olarak belirlediniz.';
break;
default:
echo 'Cinsiyet belirtmediniz';
break;
}
Burada bir selectbox ve buton içeren GET methodu ile veri alabildiğimiz bi form oluşturduk. Alt kısımda ise isset ile butona basılıp basılmadığını kontrol ettirdik. Daha sonra switch-case yapısıyla selectbox içindeki seçilen değere göre ekrana bilgileri yansıttık. default olarak herhangi bir seçim yapılmadı veya erkek-kadin haricinde bir seçim yapıldıysa Cinsiyet belirtmediniz şeklinde mesajı ekrana bastırdık.
Default kullanmak zorunda değilsiniz!
Bu işi defaultsuzda yapabilirsiniz. Fakat sistemin hata vermemesi için bütün seçeneklerin karşılığını vermemiz gerekecek.
<form action="" method="GET">
<select name="cinsiyet">
<option value="na">Belirtmek istemiyorum.</option>
<option value="erkek">Erkek</option>
<option value="kadin">Kadın</option>
</select>
<button type="submit" name="cinsiyetyazdir">Ekrana Yazdır</button>
</form>
<?php
if(isset($_GET['cinsiyetyazdir']))
{
$cinsiyet=$_GET['cinsiyet'];
switch($cinsiyet)
{
case 'erkek':
echo 'Erkek olarak belirlediniz.';
break;
case 'kadin':
echo 'Kadın olarak belirlediniz.';
break;
case 'na':
echo 'Cinsiyet belirtmediniz';
break;
}
Yukarıdaki ile birebir aynı işi yapacaktır. Şimdi farklı bir mantıksal örnek yapalım ve bir yılın dinamik olarak aylarını alalım.
<?php
//Aşağıdaki kod bize içerisinde bulunduğumuz ayın sayısal değerini verecek (1-12)
$ay=date('n');
switch($ay):
{
case 1:
echo 'Ocak';
break;
case 2:
echo 'Şubat';
break;
case 3:
echo 'Mart';
break;
...
...
...
...
case 12:
echo 'Aralık';
break;
}
İçerisinde bulunduğumuz aya karşılık gelen sayısal değere göre o ayın ismini ekrana basacaktır. Örnekler çoğaltılabilir fakat bu kadar örnek anlamanıza yetecektir. Genel olarak son örnekte verdiğim şekilde bir değere karşılık gelecek veriyi belirleme işleminde kullanılır. Çoğunlukla php ile şartlamalarda if-else yapısı kullanılmaktadır.
Bu yazıya henüz bir yorum yapılmamış, hemen bir tane yapmak ister misin ?