&
是bitwise-and,它基本上是這樣的作品,每比特是在兩個操作數1
,它產生的結果值1
和0
所有其他位。如果你轉換任何數量的位表示,你快看,它是決定一個數是否爲偶數或奇數,例如最低位:
5 = 101
10 = 1010
13 = 1101
1030 = 10000000110
的最低位(最右邊的一個,也稱爲最低有效位)對於每個奇數都是1,對於每個偶數都是0。做$n & 1
總是會產生0
除了最低位以外的其他位(因爲數字1只有一位,您可以想象剩下的位用0填充以匹配另一個操作數的長度)。所以基本上操作歸結爲比較操作數的最低位,並且1 & 1
是1,所有其他組合都是0.因此,基本上當$n & 1
產生1時,這意味着該數字是奇數,否則是偶數。
編輯。
下面是幾個例子來說明如何按位和作品,因爲我前面給的例子值,在括號中的數字是原來的十進制數:
101 (5)
& 001 (1)
---
001 (1) = true
1010 (10)
& 0001 (1)
----
0000 (0) = false
1101 (13)
& 0001 (1)
----
0001 (1) = true
10000000110 (1030)
& 00000000001 (1)
-----------
00000000000 (0) = false
從這裏就可以很容易地看到,只有當兩個操作數的最右邊位都是1時結果才爲真。
http://en.wikipedia.org/wiki/Bitwise_operation –
[參考 - 此符號在PHP中的含義是什麼?](http:// stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) –
這是更多的數學問題,而不是一個誠實的PHP問題。 –