Switch deyimi if benzeri vazife görür. Bir değişkeni birden çok değerle kıyaslayabilmemize olanak sağlar. Belirtilen kriterlerden herhangi birinin gerçekleşmesi yada hiçbirinin gerçekleşmemesi durumunda yapılacak işlemi belirleyebiliriz.
PHP:<?php
$veri = "php";
switch($veri)
{
case 'php':
echo "Sen işini biliyorsun";
break;
case 'asp':
echo "Birşey söylemek istemiyorum";
break;
}
?>
Switch ifadeleri süslü parantezle başlar ve süslü parantezle biter. Gerçekleşecek olayı belirtmek için case sözcüğünü kullanırız.
Switch ifadeleri icra edilirken php, break cümleciğini arar. Bir break ifadesini buluncaya ya da switch ifadesi bitinceye kadar ifadeyi uygulamaya devam eder. Gerçekleşen olaya vereceğimiz tepki, yani icra edilmesi istediğimiz kodlar bittiğinde, case cümleciği ile belirttiğimiz diğer durumların gerçekleşmemesi için break cümleciği ile işlemin tamamlandığını belirtiriz.
Eğer yukarıdaki işlemi if ile yapmak isteseydik kodumuz şu şekilde olacaktı:
PHP:<?php
$veri = "php";
if($veri == "php") {
echo "Sen işini biliyorsun";
} elseif($veri == "asp") {
echo "Birşey söylemek istemiyorum";
}
?>
Hiç bir koşulun gerçekleşmemesi durumu
Sayfamıza yerleştirdiğimiz switch ifadeleri varsayılan durum belirtilmemişse sadece olaylar gerçekleşince çalışırlar. Eğer hiç bir olayın gerçekleşmemesi durumunda tepki vermek istiyorsak default cümleciğini kullanırız.
PHP:<?php
$veri = "perl";
switch($veri)
{
case 'php':
echo "Sen işini biliyorsun";
break;
case 'asp':
echo "Birşey söylemek istemiyorum";
break;
default:
echo "Belirtilen dışında";
break;
}
?>
Yukarıdaki örnekte default cümleciği ile hiç bir koşulun gerçekleşmemesi durumunda yapılacak işlemi belirtmeseydik, php, hiç bir kodu icra etmeyecekti.
Son olarak bir çok sitede gördüğümüz index.php?sayfa=iletisim şekilde linklerin nasıl oluşturulacağını switch kullanarak gösteren bir örnek veriyorum.
PHP:<?php
$sayfa = $_GET['sayfa']; // get metodu ile adres çubuğundan gelen değişken
switch($sayfa)
{
case 'iletisim':
echo "İletişim sayfasındasınız";
/* ya da include("iletisim.php") ile harici iletişim sayfasını kullanabilirsiniz */
break;
case 'indir':
echo "Dosya indirme sayfasındasınız";
break;
default:
echo "Sayfamıza hoşgeldiniz. Lütfen linklerden birine tıklayın.";
break;
}
?>
<br />
<a href="?sayfa=iletisim">İletişim</a>
<a href="?sayfa=indir">Dosya İndir</a>
<a href="?">Ana Sayfa</a>
Hepimize kolay gelsin.