【问题标题】:What are PHP flags in function arguments?函数参数中的 PHP 标志是什么?
【发布时间】:2012-03-09 14:03:49
【问题描述】:

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

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

【问题讨论】:

标签: php function flags


【解决方案1】:

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

Check out the examplesjson_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】:

通常,标志是 2 的连续幂的整数,因此每个标志的一个位设置为 1,其他位设置为 0。这样,您可以使用位运算符在单个整数中传递多个二进制值。请参阅此了解更多信息(可能更准确)information

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 2015-01-21
    • 2021-09-06
    • 2014-11-04
    • 1970-01-01
    • 2023-01-25
    • 2011-09-06
    • 2018-10-20
    • 2022-11-11
    相关资源
    最近更新 更多