如何删除 PHP int 中的位标志?

han*_*rik 2 php flags bit-manipulation

假设我有

$flags=JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
Run Code Online (Sandbox Code Playgroud)

我怎样才能从中删除 JSON_UNESCAPED_SLASHES $flags

Rob*_*ert 7

这不是“C 方法”,它只是应用按位运算符

$flags=JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;

var_dump($flags & JSON_UNESCAPED_SLASHES); // flag should be set to 1

$flags &= ~JSON_UNESCAPED_SLASHES; // remove it  

var_dump($flags & JSON_UNESCAPED_SLASHES); // flag should be set to 0
Run Code Online (Sandbox Code Playgroud)