logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
kodcu  
#1 Gönderildi : 13 Aralık 2016 Salı 07:38:38(UTC)
kodcu

Sıralama: Advanced Member

Gruplar: Registered
Katılan: 12.12.2016(UTC)
Mesajlar: 37
Turkey

Php Switch Deyimi

PHP'de program akışını yönlendirmekte kullandığımız bir diğer unsur, switch
deyimidir. Adı anahtar anlamına gelen switch deyimi, verilen bir değişkenin değerinin
sıraladığımız koşullardan hangisine uygun olduğunu sınar ve o koşula ilişkin komutları icra
eder. PHP'nin yaptığı işi bitirdikten sonra switch deyiminin dışına çıkmasını sağlayan, break
komutu vardır:

Kod:

switch ( değişken ) { 
   case KOŞUL-1 ;  Koşul-1 doğru ise yapılacak işlere ilişkin komutlar break; 
   case KOŞUL-2 ;  Koşul-2 doğru ise yapılacak işlere ilişkin komutlar break; 
   case KOŞUL-3 ;  Koşul-3 doğru ise yapılacak işlere ilişkin komutlar break; 
   case KOŞUL-4 ;  Koşul-4 doğru ise yapılacak işlere ilişkin komutlar break; 
   ...................... 
   ...................... 
   default:  diğer her durumda yapılacak işlere ilişkin komutlar 
}




switch deyimini yazarken mutlaka break ifadesini kullanmamız gerekmez; switch
deyiminin akışı break ile kesilmemişse, program ilk şart yerine gelmiş olsa bile diğer
şartları da sınamaya devam eder ve en sondaki default deyimine ulaşarak (default'tan
sonra noktalı virgül değil iki nokta üstüste işareti olduğuna dikkat edin), bu bölümdeki
komutları icra eder. Ne var ki programcılık mantığına aykırı olabilir: bir değişkenin içeriği verdiğimiz şartlardan birini tutmuşsa, muhtemelen diğer şartları yerine getirmeyecek
demektir. Bu durumda diğer koşulların sınanması gereksiz e default işlerin icra edilmesi
ise hata olur. Bu deyimi de bir örnekle görelim:

Kod:

switch ( $sarki ) { 
  case "Güneş Doğacak" ;  
    echo ("Seçtiğiniz şarkının adı: Güneş Doğacak<br>") ; break; 
  case "Derdime Derman" ;  
    echo ("Seçtiğiniz şarkının adı: Derdime Derman<br>") ; break; 
  case "Haberi Yok" ;  
    echo ("Seçtiğiniz şarkının adı: Haberi Yok<br>") ; break; 
  case "Sonsuza kadar" ;  
    echo ("Seçtiğiniz şarkının adı: Sonsuza kadar <br>") ; break; 
  default:  echo ("Seçtiğiniz şarkının adı bilinmiyor<br>") ; 
} 


Programımız, bu kodu icra ederken,, $sarki adlı değişkenin değerini, buradaki dört
isimle karşılaştıracaktır. Şarkının adı, "Güneş Doğacak" ise ilk durum gerçekleşmiş olacak;
program Browser pencerisine şarkının adını yazacak (ve muhtemelen bu sözlerini
görüntüleyecek!) ve ikinci adıma break ifadesine geçecektir. break, switch deyiminin sona
ermesini sağlar; PHP yoluna, switch deyiminin kapanan süslü parantezinden sonra devam
eder. Bu örnekte break ifadesi kullanılmamış olsaydı, PHP, diğer şartları da sınacak ve
boşun azaman kaybedecekti; daha da garibi, en sondaki default komutu da icra edileceği
için programımız Browser pencerisine hem seçilen şarkının adını, hem de "Seçtiğiniz
şarkının adı bilinmiyor" yazacaktı. Bunu gözönünde tutarak, switch deyimini daima break
ile birlikte yazmamız gerekir.

switch için kısa yol
Kimi zaman uzun uzadıya switch deyimi yazmamız gerekmeyebilir; bir değişkenin
değerini sadece bir şarta uygunluk açısından sınamamız gerekir. Bunu soru ve iki nokta
üstüste işaretleri (? ... :) olarak yazılan işlemci ile yaparız. Diyelim ki, Web sitemizi ziyaret
eden kişinin parola yazıp yazmadığını sınamak istiyoruz:

Kod:

<?php 
   $uyari = ($parola == "" ) ? "Parola yazmanız gerekir" : "Teşekkür ederiz" ; 
   echo ($uyari); 
?> 


Bu kod parçacığı, ziyaretçinin parola girip girmediğini $parola değişkeninin içinin
boş olup olmadığına bakarak anlayacak ve $parola değişkenin içi boş ise (yani soru
işaretinin sorguladığı durumun doğru olması halinde) iki nokta üstüskte işaretinden önceki
metni $uyarı değişkenin içeriği haline getirecek; $parola değişkeninin içi dolu ise (yani
koşul yerine gelmiyorsa, durum yanlış ise) iki nokta üstüste işaretinden sonraki metni
$uyarı değişkeninin içeriği yapacaktır. Bir sonraki echo() komutu ise içeriği bu sınav
sonucuna göre belirlennen $uyarı değişkeninin değerini Browser penceresinde
görüntüleyecektir.


Bu konudaki kullanıcılar
Guest (2)
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.