首页 > 技术文章 > 学习笔记之-php位运算和php输入流

wanghjun 2018-06-20 15:45 原文

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性能好

 

推荐阅读