我注意到PHP中的一些函数使用标志作为参数。与普通字符串参数相比,它们有什么独特之处?我想使用它们在我的自定义函数中,但是想知道这样做的过程是什么。
编辑: 总结一下,何时最好创建带有标志的自定义函数,何时不要创建?
它们只是映射到一个数字的常量,例如SORT_NUMERIC
(排序函数使用的常量)是整数1
。
查看示例以获取json_encode()
的更多信息。
正如您所看到的,每个标记都是2n。这样,可以使用|
来指定多个标记。
例如,假设您想要使用标志JSON_FORCE_OBJECT
(16
或00010000
)和JSON_PRETTY_PRINT
(128
或10000000
)。
按位运算符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"
使用位运算符可以同时设置这两个标志。
var_dump()
函数输出常量,它会显示其内容。 - MetalFrog