首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按位运算符

按位运算符
EN

Stack Overflow用户
提问于 2012-08-21 01:11:45
回答 3查看 208关注 0票数 0

我想了解一下Zenphoto插件中的以下代码:

$plugin_is_filter = 5|ADMIN_PLUGIN|THEME_PLUGIN;

该代码段与上下文脱节。它只是关于它背后的想法。

5|ADMIN_PLUGIN|THEME_PLUGIN权限是否使用位权限?

什么时候使用它有用呢?

谢谢你的提示,链接。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-21 01:15:29

当您需要在一个变量中提供一组布尔选项时,位字段非常有用。例如,PHP允许您像这样设置错误报告:

代码语言:javascript
运行
复制
error_reporting(E_ERROR | E_WARNING | E_PARSE);

在二进制中,这些常量具有以下值:

代码语言:javascript
运行
复制
E_ERROR   0001
E_WARNING 0010
E_PARSE   0100

如果您将一组类似的选项组合在一起,您将能够在一个字段中表示这些设置:

代码语言:javascript
运行
复制
E_ERROR | E_WARNING | E_PARSE 0111

然后,您可以使用和检查正在设置的选项:

代码语言:javascript
运行
复制
if ($option & E_ERROR === E_ERROR) {
    // E_ERROR is set, do something
}
票数 1
EN

Stack Overflow用户

发布于 2012-08-21 01:13:33

是的,这就是bitwise OR的一个例子。

当您对将多个布尔标志打包为单个整数感兴趣时,通常会使用按位操作。按位运算符允许您操作字节的各个位,这意味着一个8位字节可用于存储8个不同的布尔值。当使用一个完整的8位字节来存储一个单独的二进制“是”或“否”被认为是浪费时,这是一种有用的技术。

今天,几乎没有理由在PHP语言中使用这种位打包(特别是使用像5这样的magic number ),而不是使用简单的配置数组。这是一种技术,它几乎没有给PHP代码增加任何价值,增加了复杂性,降低了可维护性,却没有真正的好处。我对任何以这种方式使用位标志的新PHP代码都持怀疑态度。

票数 1
EN

Stack Overflow用户

发布于 2012-08-21 01:27:08

变量$plugin_is_filter用于标记要加载的插件。本质上,它被视为与枚举的集合插件相对应的数组位。有关更多信息,请参阅以下链接。

这就解释了什么是ADMIN_PLUGIN and THEME_PLUGIN are

在页面中搜索“$plugin_is_filter”,以获得有关如何使用此变量的简要说明。

http://www.zenphoto.org/news/zenphoto-plugin-architecture

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12042025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档