簡體   English   中英

在PHP中評估布爾變量:應該使用If / Else還是Switch?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM