"Eğer"

0 Cevap php

Possible Duplicate:
is “else if” faster than “switch() case” ?

Ben çok basit conditionals var ve uygulama akışını şube gereken zamanlarda durumlarda çok karşılaşılan ettik. Ben ne yapıyorum gerçekleştirerek "basit" anlamına gelir sadece düz eski if / elseif ifadedir:

if($value == "foo") {
    // ...
} elseif($value == "bar") {
    // ...
} elseif($value == "asdf" || $value == "qwerty") {
    // ...
}

... Ama ben de böyle bir şey düşünüyorum:

switch($value) {
    case "foo":
        // ...
        break;
    case "bar":
        // ...
        break;
    case "qwer":
    case "asdf":
        // ...
}

Bu biraz daha az okunabilir görünüyor, ama belki de daha fazla ölçülebilir mi? Koşullu daha fazla ve daha fazla "veya" ifadeler varken Ancak, switch deyimi çok daha okunabilir ve kullanışlı gibi görünüyor:

switch($value) {
    case "foo":
        // ...
        break;
    case "bar":
    case "baz":
    case "sup":
        // ...
        break;
    case "abc":
    case "def":
    case "ghi":
        // ...
        break;
    case "qwer":
    case "asdf":
        // ...
}

Ben de kod akış dizileri ve fonksiyonları kullanarak dallı seçenekleri gördüm:

function branch_xyz() {/* ... */}
function branch_abc() {/* ... */}
function branch_def() {/* ... */}

$branches = array(
    "xyz"=>"branch_xyz",
    "abc"=>"branch_abc",
    "def"=>"branch_def"
);
if(isset($branches[$value])) {
    $fname = $branches[$value];
    $fname();
}

Oldukça çirkin olmasına rağmen bu son seçenek ayrıca muhtemelen, birden fazla dosya üzerinde dağıtılabilir olmanın yararı vardır.

Eğer performans, okunabilirlik ve kullanım kolaylığı açısından az makasına ile çok avantajları vardır Hangi hissediyorsunuz?

0 Cevap