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


What are PHP flags in function arguments?

我注意到PHP中的一些函数使用标志作为参数。是什么使它们唯一而不是纯字符串参数?我在问,因为我想在自己的自定义函数中使用它们,但我很好奇这样做的过程是什么

编辑:总结一下,什么时候最好创建带有标志的自定义函数,什么时候是而不是

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

查看json_encode()的示例。

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

例如,假设要使用标志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。

这就是使用逐位运算符设置这两个标志的方法。

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