简体   繁体   中英

Evaluating a boolean variable in PHP: Should one use If/Else or Switch?

I love getting myself into these ridiculous situations where I over-evaluate my coding practices, so here goes!

This question probably transcends PHP (as well as sanity). When evaluating a Boolean variable, which of these is best practice? (assume that there's too much //do stuff for a ternary)

if ($bool) {
    // do true stuff
} else {
    // do false stuff
}

or

switch ($bool) {
    case true:
        // do true stuff
        break;
    default:
        // do false stuff
        break;
}

I'm interested more in performance and/or idiosyncratic considerations than blanket statements like "If/Else looks better," "Always use Switch," or "Do what you feel is right."

That is, unless there really isn't a difference.

Use the if-else version. It's very clear and easy to understand.

You shouldn't really use switch unless you have multiple (> 2) values to switch on. You gain nothing using switch in this case (other than making your code less comprehensible).

If there was any difference in performance, the if-else version would be faster, although if was there any difference it would really be negligible.

This would be a micro-optimization if anything. Don't do it. Before you introduce any "optimizations" to your code, profile it and identify your bottlenecks.

Just in case, you should also check that your variable is really a boolean (and not "", 0, or null which may also evaluate to false)

if($bool === false) {
 // false stuff
} else if($bool === true) {
 // true stuff
} else {
 /// WTF???
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM