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

函数参数中的PHP标志是什么?,php,function,flags,Php,Function,Flags,我注意到PHP中的一些函数使用标志作为参数。是什么使它们成为唯一的而不是普通的字符串参数?我这样问是因为我想在自己的自定义函数中使用它们,但我很好奇这样做的过程是什么 编辑:总结一下,什么时候最好创建带有标志的自定义函数,什么时候不是?它们只是映射到一个数字的常量,例如,排序\u NUMERIC(排序函数使用的常量)是整数1 因为 如您所见,每个标志都是2n。通过这种方式,|可以用于指定多个标志 例如,假设您想使用标志JSON\u FORCE\u OBJECT(16或00010000)和JSON

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


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

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

因为

如您所见,每个标志都是2n。通过这种方式,
|
可以用于指定多个标志

例如,假设您想使用标志
JSON\u FORCE\u OBJECT
16
00010000
)和
JSON\u PRETTY\u PRINT
128
10000000

如果任一操作数的位处于打开状态,则按位运算符或(
|
)将打开该位

JSON_FORCE_OBJECT | JSON_PRETTY_PRINT
…是内部的

00010000 | 1000000
…这是

10010000
你可以和…核对一下

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


这就是如何使用逐位运算符设置两个标志。

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

可能只是
var\u dump()
cosntant的重复,它将向您显示内容。此外,这些被称为“位标志”。