[英]Evaluating a boolean variable in PHP: Should one use If/Else or Switch?
我喜歡讓自己陷入這些荒謬的情況,在這些情況下我對我的編碼實踐進行了過高的評估,所以這里就來了!
這個問題可能超越了PHP(以及理智)。 在評估布爾變量時,哪種最佳實踐? (假設有太多//do stuff
三元操作)
if ($bool) {
// do true stuff
} else {
// do false stuff
}
要么
switch ($bool) {
case true:
// do true stuff
break;
default:
// do false stuff
break;
}
我對性能和/或特質性注意事項更感興趣,而不是像“如果/其他看起來更好”,“始終使用Switch”或“做正確的事”之類的籠統聲明。
也就是說,除非真的沒有區別。
使用if-else
版本。 這非常清楚且易於理解。
除非您有多個(> 2)值可以打開,否則不應真正使用switch
。 在這種情況下,使用switch不會獲得任何收益(除了使您的代碼難以理解之外)。
如果性能上有任何差異,則if-else
版本會更快,盡管如果有任何差異,則實際上可以忽略不計。
如果有的話,這將是微優化。 不要這樣 在對代碼進行任何“優化”之前,先對其進行概要分析並確定瓶頸。
為了以防萬一,您還應該檢查您的變量是否確實是布爾值(而不是“”,0或null,其值也可能為false)
if($bool === false) {
// false stuff
} else if($bool === true) {
// true stuff
} else {
/// WTF???
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.