切换案例与条件?

Vau*_*lor 0 jquery conditional switch-statement

我发现这篇文章:切换案例有三个参数?我正在考虑使用switch case传递多个参数,如下所示:

switch (array($var1, $var2, $var3)) {
case array(true, false, false):
    echo "hello";
    break;
}
Run Code Online (Sandbox Code Playgroud)

似乎有一些问题是,这是否是最有效的方法.情绪似乎是if条件更合适.但是,当我看到我正在写的条件时,我不确定?例如,这感觉很乱(注意我已经删除了大约6个其他条件,以免让你厌烦):

if ( 
  csz == "google" || 
  csz == "bing" || 
  csz == "yahoo" || 
  csz == "dogpile" || 
  csz == "millionshort" && 
  cs == '' ) { 
    $("li.phone").replaceWith('<li class="phone">' + phoneNaturalSearch + '</li>');
}
else if ( 
  csz == "facebook" && 
  cs == '' ) { 
    $("li.phone").replaceWith('<li class="phone">' + phoneFacebook + '</li>');
}
else if ( 
  csz == "google-plus" || 
  csz == "plus" ) { 
    $("li.phone").replaceWith('<li class="phone">' + phoneGooglePlus + '</li>');
}
// Snipped out other conditionals
else { 
    $("li.phone").replaceWith('<li class="phone">' + phoneDefault + '</li>');
}
Run Code Online (Sandbox Code Playgroud)

在这里切换多个参数会更有效率,还是会遇到性能损失?我想我应该编写代码并查看它是否真的不那么混乱,但我想我会首先从大师那里反弹.

Sus*_* -- 5

我觉得如果你有这么多条件我更喜欢使用switch语句,这会使你的代码更清晰,更容易理解.你可以省略针对这个特定类别的条件的中断...

var phoneType= '';

switch(csz){ 
  case "google" : 
  case  "bing" : 
  case "yahoo" :
  case "dogpile"  : 
  case "millionshort" : 
    if (cs==''){ 
        phoneType = phoneNaturalSearch ;
        break;
    }
    else {
        goto case "facebook";
    }
  case "facebook" :
    if (cs==''){ 
        phoneType = phoneFacebook  ;
        break;
    }
    else {
        goto case "google-plus";
    }
  case "google-plus" :
  case "plus"  : 
    phoneType = phoneGooglePlus ;
    break;
  default : 
    phoneType = phoneDefault  ;
    break;
}

$("li.phone").replaceWith('<li class="phone">' + phoneType + '</li>');
Run Code Online (Sandbox Code Playgroud)