Forum Aski - Türkiye'nin En Eğlenceli Forumu
 

Go Back   Forum Aski - Türkiye'nin En Eğlenceli Forumu > Webmaster Dünyası > Webmaster Genel > PhpBB


Switch Yapısı

PhpBB kategorisinde açılmış olan Switch Yapısı konusu , ...


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Arama Stil
Alt 29.04.2014, 01:33   #1 (permalink)
Dahiliğin mutlak bir sınırı vardır, aptallığın asla.

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
yeni Switch Yapısı



Switch Yapısı

Bu yapı aslında if yapısı ile hemen hemen aynıdır. Ancak bazı durumlarda if kullanmak daha kompleks bir hal alırken switch kullanmak bize daha kolay ve kısa bir yöntem olarak görülebilir. Switch deyimi if deyimine ne kadar benzese de if deyiminin yaptığı herşeyi yapamaz. Yine de bize bazı durumlarda fazlasıyla yardımcı olabilir.

Peki ne işimize yarayacak bu deyim? Bu yapıyı if yapısı ile eşdeğer tutarak ne işe yarayabileceğini düşünebilirsiniz. Nihayetinde bu da bir if benzeri yapıdır ve vereceğiniz koşula göre sınama yapıp size sonucu verir. Yazının devamında örnekler ile ne işe yarayacağını biraz da olsa anlayabileceksiniz.

Switch deyiminin yazılışını ve dizilişini öğrenmek için aşağıdaki örneği inceleyin:

Kod:
Kod:
switch ($tarih) {
	case "dmy";
		echo date("d.m.Y");
	break;

	case "dmygis";
		echo date("d.m.Y G:i:s");
	break;

	default:
		echo("Tarih türünü seçmediniz. Bu sebeple default tarih gösterimini görüyorsunuz:");
		echo date("<b> d-m-Y G:i - l</b>");
}
Yukarıdaki kodu ilk olarak şekil yapısı olarak inceleyelim. Dikkatinizi çekti ise her koşul case ile tanımlanıp break ile sona erdiriliyor. Bu iki eleman switch deyiminin olmazsa olmazları diyebiliriz. Örnekte ilk olarak $tarih değişkeninin değeri sınanıyor ve bu koşullara bağlanıyor. Switch deyiminde de, if deyimine benzer bir şekilde değişken tanımlanıyor, daha sonra süslü parantez "{ }" açılıyor ve koşullar sıralanıyor. Tüm koşullar sıralandıktan sonra, eğer hiçbir koşul sağlanmıyorsa devreye gidecek olan default kısmı yer alıyor. Unutmamalıdır ki bu kısmın switch deyiminin sonunda olması daha iyi olacaktır, eğer ortalarda ya da en başta olursa deyim hatalı çalışabilir. Ayrıca default bölümü case kısımlarında olduğu gibi noktalı virgül ile değil, iki nokta üstüste işareti ile yazılır. Eğer noktalı virgül koyarsanız yine hata alırsınız.

Şimdi örneğimizi inceleyelim. Örnekte $tarih değişkeninin alacağı değerleri sınıyoruz ve bu değerlere göre koşullar yaratıp işlem yaptırıyoruz. Bu kodu ornek.php ismi ile kaydedip [Link'i Görebilmeniz İçin Kayıt Olunuz.! Kayıt OL] olarak çalıştırırsanız ilk koşulumuz gerçekleşecek ve "09.03.2004" gibi bir çıktı alacaksınız. Aynı şekilde eğer ornek.php?tarih=dmygis olarak çalıştırırsanız "09.03.2004 20:12:17" gibi bir çıktı alırsınız. Eğer sadece [Link'i Görebilmeniz İçin Kayıt Olunuz.! Kayıt OL] olarak çalıştırırsanız hiçbir koşul yerine gelmediğinden "Tarih türünü seçmediniz. Bu sebeple default tarih gösterimini görüyorsunuz: 09-03-2004 20:13 - Tuesday" çıktısını alırsınız. Yine eğer ornek.php?tarih=ffsafdasfdas gibi bir şekilde girmeye çalışırsanızda default kısmı devreye girer ve aynı çıktıyı alırsınız.

Dikkat etmeniz gereken şeyleri şu şekilde sıralayabiliriz:
Case ve default kısımlarının imla farklarına dikkat etmeliyiz. (Yukarıda anlatılan noktalı virgül ve iki nokta üstüste farkı.)
Case ile başlattığımız her koşulu mutlaka break ile sonlandırmalıyız. Eğer sonlandırmazsak ya hata verir ya da diğer break; komutuna kadar çalışmaya devam eder ve bozukluk yaratır.
Switch yapısına başlarken açtığımız süslü parantezi mutlaka deyimin sonunda kapatmalıyız.

Mesela bir site yapıyorsunuz ve bu sitenizin aynı diğer sitelerdeki gibi [Link'i Görebilmeniz İçin Kayıt Olunuz.! Kayıt OL] gibi linkleri olsun istiyorsunuz. Bu durumda switch yapısı oldukça işlevseldir. Bunu if yapısı ile de yapabilirsiniz fakat switch if deyiminden bu durumlarda daha hızlı çalışacağı için ve daha işlevsel olacağı için önerilir. Yukarıdaki örneğe bakarak istediğiniz türden linkler yaratabilirsiniz.

Switch içerisine istenildiği kadar koşul tanımlanabilir, fakat ne kadar çok koşul olursa çalışma performansı o kadar düşecektir. Bu yüzden olabildiğince kısa tutmaya çalışmalıyız. Ayrıca switch deyiminin if deyiminden daha hızlı çalıştığı bilindiğinden, switch ile yapabileceğimiz işlemleri if ile yapmamalıyız. Yapsak bile sonuçta performans düşeceği için zararlı çıkan biz oluruz.

__________________
Sezqin-X- isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Cevapla

Yukarı'daki Konuyu Aşağıdaki Sosyal Ağlarda Paylaşabilirsiniz.

Seçenekler Arama
Stil

Yetkileriniz
Konu Açma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Forum hakkında Kullanılan sistem hakkında
Forumaski paylaşım sitesidir.Bu nedenle yazılı, görsel ve diğer materyaller sitemize kayıtlı üyelerimiz tarafından kontrol edilmeksizin eklenmektedir.Bu nedenden ötürü doğabilecek yasal sorumluluklar yazan kullanıcılara aittir.Sitemiz hak sahiplerinin şikayetleri doğrultusunda yazılı, görsel ve diğer materyalleri 48 saat içerisinde sitemizden kaldırmaktadır. Bildirimlerinizi bu linkten bize yapabilirsiniz.

Telif Hakları vBulletin® Copyright ©2000 - 2016, ve Jelsoft Enterprises Ltd.'e Aittir.
SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.

Saat: 09:29


bizimmekan.com sohbet eczaonline.com