為什麼我們通常喜歡邏輯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中文網其他相關文章!