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