• 16-07-2010, 19:38:13
    #10
    Üyeliği durduruldu
    yanlış bilgi vermeyin.

    İf switch den daha hızlı çalışır


    + 104 %if and elseif (using ==)Total time: 189 µsview code
    + 198 %if, elseif and else (using ==)Total time: 358 µsview code
    + 107 %if and elseif (using ===)Total time: 193 µsview code
    + 100 %if, elseif and else (using ===)Total time: 181 µsview code
    + 143 %switch / caseTotal time: 259 µsview code
    + 225 %switch / case / defaultTotal time: 408 µsview code
  • 16-07-2010, 21:50:57
    #11
    Kimlik doğrulama veya yönetimden onay bekliyor.
    http://www.dmry.net/if-mi-yoksa-switch-mi-daha-hizlidir
  • 16-07-2010, 22:09:53
    #12
    Üyeliği durduruldu
    dmry linkindeki vatandaş sadece kendisi f5 yaparak yapmış bu testi switch daha hızlı demiş...

    http://phpbench.com/ testlerini inceleyiniz.
  • 17-07-2010, 08:34:22
    #13
    Üyeliği durduruldu
    php.net i de takip ederseniz Operatörlerin her zaman diğer ifade ve fonksiyonlardan daha hızlı olduğu yazar.

    <?php
        $a = 1;
    
        // ilk karşılaştırmada kırılır
        if ($a===1)
        {
            echo 'bir';
        }
        elseif($a===2)
        {
            echo 'iki';
        }
        elseif($a===3)
        {
            echo 'uc';
        }
    ?>
    
    <?php
    
        $a = 2;
    
        // üçüncü karşılaştırmada kırılır
    
        switch($a)
        {
            case 3:
                echo 'üç';
                break;
            case 2:
                echo 'ik,';
                break;
            case 1:
                echo 'bir';
                break;
    
        }
    
    ?>
    bu da istisnai bir örnek. nerede kırıldığı da önemlidir. en cok kullanılan block en başa alınmalı.

    switch case ifadesinde de operatörleri kullanabiliriz
    case ($a === 1):
    break;
    bu da normal swicth ifadesinden operatör farkı kadar hızlı olacaktır.
    ama sayfalamanın en güzeli yine php'nin script yeteneklerini kullanmaktır

      $actions = array(1=>'edit',2=>'insert');
      $actions[$_GET['action']]();
    
      function  edit()
     {
         echo 'edit sayfası';
       }
       
       // $_GET['action']();  şeklinde de kullanılabilirdi ama güvenlik açıkları yaratabileceğinden sınırlamış olduk.
  • 17-07-2010, 09:21:57
    #14
    Üyeliği durduruldu
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    dmry linkindeki vatandaş sadece kendisi f5 yaparak yapmış bu testi switch daha hızlı demiş...

    http://phpbench.com/ testlerini inceleyiniz.
    +++
  • 17-07-2010, 19:08:11
    #15
    Bilgilendirme İçin Teşekkürler Herkeze,

    Birde Bir Şey Danışıcam jquery tabs kullandığım zaman bu case lerde malesef çalışmıyor,
    benmi yapamadım yoksa #tabismi olduğundan ötürümü olmuyor anlayamadım.

    yardımlarınız için teşekkürler
  • 17-07-2010, 22:19:41
    #16
    Üyeliği durduruldu
    #tabismi gibi urller sayfayı yenilemediğinden olabilir. linkleri değiştiriseniz ?tab=tabismi#tabismi
    hem $_GET['tab'] gibi işleme karar verebilirsiniz hem de #tabismi ile tabı değiştirmiş olursunuz.

    bunları yapmak yerine parse_url($_SERVER['REQUEST_URI']) ile "anchor" elemanı ile tabismi değerini alabilirsiniz. tabi bu değerin size gelebilmesi için href="#tabismi" yerine href="http: // ... #tabismi" gibi kullanmalısınız. jquery tab işe yaramicak sanırım (:

    ille de jquey tab olacak diyorsanız da. action sayfasını ayırıp taba gore ajax işlemleri yaptırabilirsiniz.

    tıkandım bi alternatif daha gelmiyor aklıma. kolay gelsin.
  • 18-07-2010, 00:43:55
    #17
    Hocam İlginiz İçin Teşekkür Ederim,
    İlla Jquery / Ajax Olucak Diye Bir Durum Söz konusu Değil
    Burdaki Gibi Yazıya Veya Resime Tıklanınca Değişen Bir Sayfa Eklemek istiyorum Sadece Ondan Kaynaklı Jquery Kolay ve Kullanışlı Olduğundan Seçmiştim
  • 19-07-2010, 00:24:29
    #18
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    dmry linkindeki vatandaş sadece kendisi f5 yaparak yapmış bu testi switch daha hızlı demiş...

    http://phpbench.com/ testlerini inceleyiniz.
    bak okumuyorsun ama hadi taa 2007'de yazdığım bir yazı olmasını geçtim;

    Alıntı
    Tabi gördüğünüz gibi tarih farkı bulma işlemini for döngüsü ile arka arkaya 10.000 kez uygulatıyoruz. Fakat bu yetmiyor ve sayfa yüklendikten sonra arka arkaya birkaç kez F5 yaptım.....yük bindirmiş oldum sunucuya......en küçük süre değerini not aldım
    diye özetliyorum.

    Gelelim olayın gerçek yüzüne Testlerin nasıl yapıldığına bağlıdır bu durum. Switch ile IF arasında en önemli fark, 3-4 den daha fazla koşulunuz işin içerisine giriyorsa, switch daha hızlıdır. Ancak true ya da false olacak şekilde 2 adet koşul değerlendireceksiniz, elbette kusursuz IF daha hızlıdır. Sizin verdiğiniz adres üzerinde bu şekilde bir test uygulanmıştır ve IF hızlı çıkmıştır. Ama ben testimde 7 tane koşulu değerlendirdim ve tabi ki Switch hızlı çıktı hımm evet niye bunu belirtmedin diyebilirsin, ee yıl 2007

    Asıl soruya gelelim

    Arkadaşımıza böyle bir durum gerekmiyor yani eğer modül sistemi oluşturacaksa;

    index.php?m=anket
    index.php?m=test
    index.php?m=magazin

    v.b. sayfalarınız olsun.


    $modul = $_Get['m'];
    call_user_func($modul);
    
    function anket() {
    //
    }
    function test() {
    //
    }
    function magazin() {
    //
    }

    olarak uygularsınız ve gayet de şık olur


    ve lütfen önce okuyalım arkadaşlar, kodları inceleyelim, sonra .. vb.. iyi geceler