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

时间:2012-03-09 14:03:50

标签: php function flags

我注意到PHP中的一些函数使用 flags 作为参数。是什么让他们独特而不是普通的字符串参数?我问,因为我想在我自己的自定义函数上使用它们,但我很好奇这个过程是做什么的。

编辑:总结一下,何时最好使用标记创建自定义函数,何时

2 个答案:

答案 0 :(得分:10)

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

对于Check out the examples

json_encode()

如您所见,每个标志都是2 n 。这样,|可用于指定多个标志

例如,假设您要使用标记JSON_FORCE_OBJECT1600010000)和JSON_PRETTY_PRINT12810000000

如果任一操作数的位打开,则按位运算符OR(|)将打开该位...

JSON_FORCE_OBJECT | JSON_PRETTY_PRINT

......在内部......

00010000 | 1000000

......这是......

10010000

您可以查看...

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

CodePad

这就是两个标志可以通过按位运算符 set 的方式。

答案 1 :(得分:3)

通常,标志是连续2的幂的整数,因此每个都有一个位设置为1而所有其他位设置为0.这样,您可以使用逐位运算符在单个整数中传递许多二进制值。请参阅此内容以获取更多(可能更准确)information