Php programlama dilinde switch deyimi, include ve require fonksiyonları
2809 0

if, şart yapıları kadar sık kullanılmasa da bazı durumlarda if yerine switch kullanarak dallanmalar yapmak daha yerinde oluyor. Yine göstereceğimiz "include" ve "require" fonksiyonları olmadan bir projenin bitirilmesi mümükün değil diyebilirim.

Switch Deyimi

Yazım biçimi;

switch($deger){
    case /*Şart İfadesi veya Değer*/: 
        //İşlemler
        break;
    .
    .
    .
    default:
        //İşlemler
        break;
}

$deger değişkenin içeriğindeki değere bağlı işlemler yaptırmak için kullanılan switch ifadesinin yazımı bu şekildedir. Bir iki örnek ile devam edelim.

Switch için en klasik örneklerden biri olan dört işlemler başlayalım. Gelen değerin içerisinde "+","-","*","/" karakterlerinden biri varsa gereken işlem yapılsın, yoksa "Geçerli Karakter Gelmedi!" şeklinde uyarı versin.

<?php
    $islem="+";
    $sayi1=5;
    $sayi2=8;
    
    switch($islem){
        case "+":
            $sonuc=$sayi1+$sayi2;
            break;
        case "-":
            $sonuc=$sayi1-$sayi2;
            break;
        case "*":
            $sonuc=$sayi1*$sayi2;
            break;
        case "/":
            $sonuc=$sayi1/$sayi2;
            break;
        default:
            $sonuc="Geçerli Karakter Gelmedi";
            break;
    }
    
    echo $sonuc;
?>

Örneğimizde dışarıdan gelen bir takım bilgisine göre takımın hangi şehirden olduğunu gösteren kodları yazalım. Bu örnekte break ifadesine dikkat edelim, önceki örnekten biraz kullanım farkı var.

<?php
    $takim="Beşiktaş";
    
    switch($takim){
        case "Beşiktaş":
        case "Galatasaray":
        case "Fenerbahçe":
        case "Kasımpaşa": 
            $sehir="İstanbul"; 
            break;
        case "Gençlerbirliği":
            $sehir="Ankara";
            break;
        case "Kayserispor":
        case "Erciyesspor":
            $sehir="Kayseri";
            break;
        default:
            $sehir="Bilinmiyor";
            break;
    }
    
    echo "$takim takımının bulunduğu şehir $sehir";
?>

Örneğe bakacak olursanız ilk dört takım İstanbul takımı olduğu için herbirine tek tek "$sehir" değişkeni oluşturmak yerine "break" ifadesini 1 kez kullanıp 4 takım için aynı şehir bilgisini kullanmış olduk. Buradan anlayacağımız şey switch-case bloğu içerisine girildiğinde, break ifadesi görülene kadar kodların işletildiği. "break" görüldüğü an "switch" dışına çıkılacaktır.

include(), include_once() fonksiyonları

Dışarıdan bir dosyayı kendi sayfamıza dahil etmek istediğimizde bu fonksiyonları kullanırız. Dışarıdan dahil edilen dosya kendi hazırladığımız bir dosya yada hazır bir sınıf a olabilir. Küçü bir örnek ile açıklamaya çalışalım.

Harici bir "isimler.php" dosyamız olsun. Ben bu dosya içerisinde akrabalarımın isimlerini saklıyorum.

<?php
    //isimler.php dosyası
    $babam="Ahmet";
    $annem="Fatma";
    $amcam1="Mehmet";
    $yengem1="Naciye";
?>

Ben akramın temsil ettiği değişkeni yazdığım anda onun adının görünmesini istiyorum ve "index.php" dosyamdan "isimler.php" dosyasını çağırmam gerekiyor. 

<?php
    //index.php dosyası
    
    include("isimler.php");
    
    echo "Babamın adı $babam, annemin adı $annem";
?>

Burada dosyaların yanyana yani aynı klasör içerisinde bulunduğunu hatırlatalım. 

include_once() fonksiyonu da include ile aynı işi yapar. Farkı, eğer parantez içerisinde tanımlanmış dosya daha önce tanımlandıysa hata vermekten kurtarır. Büyük projelerde bazan aynı dosyayı 2 kez include ediyor olabilirsiniz ve bu gibi durumlarda neme lazım include_once() kullanmak isteyebilirsiniz.

require(), require_once() fonksiyonları

include() ve include_once() için ne söylediysem aynıları bunlar için de geçerli. Aradaki fark şudur ki; eğer include() kullanırken bir hata oluşursa, hata oluşan satırdan sonraki satırlar yine de çalıştırılacaktır. Fakat require() kullanıyorsanız, require() satırından sonraki satırlar çalıştırılmaz. Peki neden böyle bir şey var? Çünkü, örneğin veritabanı bağlantısı yapıyorsunuz include() kullandınız ve çağırdığınız dosyada hata var. Eğer veritabanını çalıştıramazsanız sayfanızda büyük sorunlara yol açar hatta hiçbir sonuç çıkmaz. Ama include() kullandığınız için sonraki kodlar çalıştırılır. Bunun yerine require() kullanmak daha mantıklı olacaktır. Yine include() kullanmanın da faydalı oalcağı yerler vardır. Örnek;

<?php
    //Az önceki isimler.php örneğini düşünerek.
    
    include("isimle.php");
    
    echo "Babamın adı $babam, annemin adı $annem";
?>

Yukarıda "isimler.php" yerine "isimle.php" yazdık ve bir hata oluştu. Daha sonrasında da bu sayfadan gelmesini umduğumuz değişkenleri kullandık. Zincirleme hataya sebep oldu. Bunun yerine require() kullanımış olasaydık, en azından değişkenlerin hatasından kurtulurduk. Çünkü echo satırı işletilmezdi.

<?php
    //Az önceki isimler.php örneğini düşünerek.
    
    require("isimle.php");
    
    echo "Babamın adı $babam, annemin adı $annem";
?>

 

^
X