我發現這個職位:Switch case with three parameters?和我使用開關的情況下傳遞多個參數,這樣的考慮:開關盒與條件?
switch (array($var1, $var2, $var3)) {
case array(true, false, false):
echo "hello";
break;
}
似乎有是一些問題,這是否是這樣做的最有效的方式。情緒似乎是如果條件更合適。但是,當我看着我寫的條件時,我不確定?例如這種感覺凌亂(請注意,我已經去除了大約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>');
}
會和多個參數切換更加高效這裏,否則我會遇到性能命中?我想我應該編寫代碼,看看它是否真的不那麼混亂,但我認爲我會首先從專家那裏反彈出來。
[搭建jsPerf測試用例(http://jsperf.com/if-statement-with-many-ors),並找出自己。它可能取決於運行它的瀏覽器。 – Blazemonger
我從來沒有使用過這個工具。感謝您指點我! –
我不明白這是如何工作的?你不能只比較兩個數組http://jsfiddle.net/acXV4/1/ – CaffGeek