PHP函数参数中的标志是什么?

9
我注意到PHP中的一些函数使用标志作为参数。与普通字符串参数相比,它们有什么独特之处?我想使用它们在我的自定义函数中,但是想知道这样做的过程是什么。 编辑: 总结一下,何时最好创建带有标志的自定义函数,何时不要创建?

可能是PHP函数标志,如何使用?的重复问题。 - Quentin
只需使用 var_dump() 函数输出常量,它会显示其内容。 - MetalFrog
2个回答

13

它们只是映射到一个数字的常量,例如SORT_NUMERIC(排序函数使用的常量)是整数1

查看示例以获取json_encode()的更多信息。

正如您所看到的,每个标记都是2n。这样,可以使用|来指定多个标记

例如,假设您想要使用标志JSON_FORCE_OBJECT1600010000)和JSON_PRETTY_PRINT12810000000)。

按位运算符OR(|)将在任一操作数的位上打开该位......

JSON_FORCE_OBJECT | JSON_PRETTY_PRINT

......在内部使用的是一个基于hash表的机制。

00010000 | 1000000

...它是...

10010000

你可以使用以下方法来检查它...

var_dump(base_convert(JSON_PRETTY_PRINT | JSON_FORCE_OBJECT, 10, 2));
// string(8) "10010000"

CodePad

使用位运算符可以同时设置这两个标志。


1
此外,这些被称为“位标志”。 - BoltClock

4
通常标识是连续的2的幂次方整数,这样每个整数只有一个位设置为1,其他所有位都为0。这样,您可以使用位运算符在单个整数中传递许多二进制值。更多信息请参见此处(可能更准确)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接