1.位运算符
& 与 | 或 ^ 异或 ~ 取反
$a & $b |
And(按位与) |
将把 $a 和 $b 中同时都为 1的位设为 1。 |
||
$a | $b |
Or(按位或) |
将把 $a 和 $b 中任何一个为 1的位设为 1。 |
||
$a ^ $b |
Xor(按位异或) |
将把 $a 和 $b 中一个为 1另一个为 0 的位设为 1。 |
||
~ $a |
Not(按位取反) |
将 $a 中为 0的位设为 1,反之亦然。 |
举一个例子:
3&1=1
3的二进制位码 00000011
1的二进制位码 00000001
3和1的最后一位满足都是1 所以得出的是00000001 转换成10进制就是1
2.判断int型的变量是技术还是偶数
int a; a&1=0偶数 a&1=1基数
3. $a << $b 左移位 将$a中的位想左移动$b次 表示每一次移动都是乘以2 (5<<2 = 5*2^2)
4. $a >> $b 右移位 将$a中的位想右移动$b次 表示每一次移动都是除以2 (8>>2 = 5/2^2)
5.php输入流 php://input 可以使用 file_get_contents(php://input)接收,$_POST 和php://input(可以用来接收其他post无法传输的数据,比如xml)
1) 仅当header头信息中content-type存在 application/x-www-data-urlencoded 和 multipart/form-data时,此时php才会将接收到的数据存到$_POST中,此时$_POST中的数据是url_decode解析后的结果
2) 当heaeder头信息中content-type不为multpart/form-data 时 php://input会填入$_POST数据,反之php://input则没有数据
3) 当content-type为application/x-www-data-urlencoded 且提交的方式为post时 php://input和$_POST的数据才一致
4)HTTP_RAW_POST_DATA 性能没有php://input性能好