2011-05-21 25 views
0

我是編程,PHP和麪向對象編程領域的新手。我碰到以下代碼行,並想知道什麼是|是用於以及當您使用它?它對我來說看起來是或者,但我認爲OR由||表示管道在面向對象編碼中是指什麼?

empty($this->contact_country) | empty($this->contact_questcomm) | 
+0

按位運算符或運算符http://www.php.net/manual/en/language.operators.bitwise.php – mhitza 2011-05-21 20:08:18

+0

當意圖是邏輯OR時,我總是使用'||'。 – Fosco 2011-05-21 20:14:06

回答

7

|是按位或; ||是邏輯或。這些是PHP語言的操作符,與OOP無關。

這只是一個巧合,按位和邏輯布爾運算符對布爾類型的工作方式相同,因爲false/true和0/1在PHP中可以互換。例如,true & false等於1 & 0。結果是0,這被認爲是PHP中的一個虛假值(即,在布爾上下文中是false)。

無論如何,你不應該在條件表達式中使用按位運算符,除非你在條件內進行位移計算。使用邏輯運算符作爲條件邏輯的,所以人們不會感到困惑。像你一樣,我肯定會在給定的代碼中用||代替|,因爲empty()返回false或true。

+0

@BoltClock - 我認爲寫一個更好的方法是把它寫成'||'。 – PeanutsMonkey 2011-05-21 20:14:41

+0

@PananutsMonkey:是的。我已經添加到我的答案。 – BoltClock 2011-05-21 20:14:58

+0

@BoltClock - 謝謝。我不知道什麼是按比特還是比特轉移,但是當需要出現時,猜測會觸及到這一點。 – PeanutsMonkey 2011-05-21 20:19:23

相關問題