为什么我们通常更喜欢逻辑 OR (||) 而不是按位 OR (|)
在编程中,逻辑 OR (||) 和如果一个或两个操作数都为 true,则按位 OR (|) 运算符的计算结果都为 true。然而,有一个关键的区别有利于使用 || over |:短路。
使用逻辑 OR 进行短路的好处
当使用逻辑 OR(||) 时,一旦遇到真操作数。如果不需要的话,这可以防止对后续操作数进行求值。考虑以下情况:
if(true || false) // Passes if(false || false) // Doesn't pass
在第一种情况下,无需计算第二个操作数,因为第一个操作数已经为 true。类似地,对于其他逻辑运算符,如逻辑 AND(&&) 和逻辑 NOT (!)。
按位 OR 与逻辑 OR
按位 OR,另一方面,计算两个操作数,无论结果如何。这在您想要执行位操作(例如设置或清除位)的情况下非常有用。然而,对于布尔运算,逻辑或的短路行为提供了显着的好处:
if(string != null && string.isEmpty()) // Checks for null before calling isEmpty()
一般来说,对于布尔运算,建议使用逻辑 OR(||),而不是按位 OR (|),因为它具有短路、性能优化和空引用检查期间的安全检查。
以上是逻辑或 (||) 与按位或 (|):何时应选择短路?的详细内容。更多信息请关注PHP中文网其他相关文章!