Heim > Backend-Entwicklung > PHP-Tutorial > 请问有没有人给一个PHP位运算的实际应用场景?

请问有没有人给一个PHP位运算的实际应用场景?

WBOY
Freigeben: 2016-06-06 20:22:32
Original
1393 Leute haben es durchsucht

关于PHP的位运算,在以前基础的时候学习过,但是后来在真正的项目中,从来没用过,百度了一下,也没发现有个好的应用场景的例子,也就是说没有一个实际的项目业务逻辑的应用例子,这个具体作用是什么呢?难道是我接触的东西还太少了?

回复内容:

关于PHP的位运算,在以前基础的时候学习过,但是后来在真正的项目中,从来没用过,百度了一下,也没发现有个好的应用场景的例子,也就是说没有一个实际的项目业务逻辑的应用例子,这个具体作用是什么呢?难道是我接触的东西还太少了?

我把问题改了。我们应该讨论包含位移在内的一切位运算

php的位运算主要用于处理你不可知的上游数据。例如:

  • 上游数据源的规模巨大,大到必须用整数 + 标志位的手段来存储一系列布尔值的地步。

  • 上游数据源是一些底层硬件(例如 Arduino 或者其他单片机),这些硬件的存储器极其有限,存不了几个字节的数据,必须用位运算压缩存储。

事实上绝大多数php代码本身,几乎不需要引入位运算。毕竟到了php这一层,对存储和速度的敏感度也就没那么高了。
但php作为重要的适配器中间件,应对各种上层数据源和下层消费者的能力却是绝不可少的。

位运算确实用到的少。知道有这么回事,用时再查就行。

php的json_encode()函数,$option参数就是使用位运算

<code>json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);</code>
Nach dem Login kopieren

我有时候设计某些参数就是使用这种方式。


再补充一个,权限设计

把不同的权限分配到不同的因子数上,例如2 4 8 16 ...

然后用户的权限就可以是 2 | 8

存储的时候只用存一个数字

检查是否具备对应的权限就用位运算来检查

<code><?php // 权限因子: 2 4 8 16 32
$p = 2 | 8 | 32;  // 用户权限
$c = 2;           // 用于检查的权限

if (($p & $c) === $c) {
    echo '有权限';
} else {
    echo '没权限';
}</code></code>
Nach dem Login kopieren

你可以看下有关PHP DES或者RSA等等的对称加密使用到了位移。

另外,
位移操作的运算速度比一般的计算操作速度要快。

计算或判断ip地址: ip2long然后子网掩码移来移去

位运算就更多了, 很多内置函数的选项其实是标志位, (option1|option2)

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage